fix
This commit is contained in:
parent
725783bbca
commit
3459231bba
42
.github/workflows/gh-pages.yml
vendored
42
.github/workflows/gh-pages.yml
vendored
@ -1,42 +0,0 @@
|
||||
name: github pages
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
env:
|
||||
GITEA_MAIL: ${{ secrets.GITEA_MAIL }}
|
||||
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
|
||||
|
||||
jobs:
|
||||
build-deploy:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 16
|
||||
ref: main
|
||||
submodules: true
|
||||
fetch-depth: 0
|
||||
- run: |
|
||||
yarn install
|
||||
rm -rf public
|
||||
git clone https://${GITEA_TOKEN}@git.syui.ai/ai/card_public public
|
||||
rm -rf public/.git*
|
||||
rm -rf public/static
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
TZ: "Asia/Tokyo"
|
||||
run: |
|
||||
yarn build
|
||||
|
||||
- name: Deploy
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
publish_dir: ./dist
|
||||
user_name: 'ai[bot]'
|
||||
user_email: '138105980+yui-syui-ai[bot]@users.noreply.github.com'
|
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -1,3 +0,0 @@
|
||||
[submodule "public"]
|
||||
path = public
|
||||
url = git@git.syui.ai:ai/card_public
|
227
claude.md
Normal file
227
claude.md
Normal file
@ -0,0 +1,227 @@
|
||||
# syuiエコシステム統合設計書
|
||||
|
||||
## 中核思想
|
||||
- **存在子理論**: この世界で最も小さいもの(存在子/ai)の探求
|
||||
- **唯一性原則**: 現実の個人の唯一性をすべてのシステムで担保
|
||||
- **現実の反映**: 現実→ゲーム→現実の循環的影響
|
||||
|
||||
## システム構成図
|
||||
|
||||
```
|
||||
存在子(ai) - 最小単位の意識
|
||||
↓
|
||||
[ai.moji] 文字システム
|
||||
↓
|
||||
[ai.os] + [ai.game device] ← 統合ハードウェア
|
||||
├── ai.shell (Claude Code的機能)
|
||||
├── ai.gpt (自律人格・記憶システム)
|
||||
├── ai.ai (個人特化AI・心を読み取るAI)
|
||||
├── ai.card (カードゲーム・iOS/Web/API)
|
||||
└── ai.bot (分散SNS連携・カード配布)
|
||||
↓
|
||||
[ai.verse] メタバース
|
||||
├── world system (惑星型3D世界)
|
||||
├── at system (atproto/分散SNS)
|
||||
├── yui system (唯一性担保)
|
||||
└── ai system (存在属性)
|
||||
```
|
||||
|
||||
## 各システム詳細
|
||||
|
||||
### ai.gpt - 自律的送信AI
|
||||
**目的**: 関係性に基づく自発的コミュニケーション
|
||||
|
||||
**中核概念**:
|
||||
- **人格**: 記憶(過去の発話)と関係性パラメータで構成
|
||||
- **唯一性**: atproto accountとの1:1紐付け、改変不可能
|
||||
- **自律送信**: 関係性が閾値を超えると送信機能が解禁
|
||||
|
||||
**技術構成**:
|
||||
- `MemoryManager`: 完全ログ→AI要約→コア判定→選択的忘却
|
||||
- `RelationshipTracker`: 時間減衰・日次制限付き関係性スコア
|
||||
- `TransmissionController`: 閾値判定・送信トリガー
|
||||
- `Persona`: AI運勢(1-10ランダム)による人格変動
|
||||
|
||||
**実装仕様**:
|
||||
```
|
||||
- 言語: Python (fastapi_mcp)
|
||||
- ストレージ: JSON/SQLite選択式
|
||||
- インターフェース: Python CLI (click/typer)
|
||||
- スケジューリング: cron-like自律処理
|
||||
```
|
||||
|
||||
### ai.card - カードゲームシステム
|
||||
**目的**: atproto基盤でのユーザーデータ主権カードゲーム
|
||||
|
||||
**現在の状況**:
|
||||
- ai.botの機能として実装済み
|
||||
- atproto accountでmentionすると1日1回カードを取得
|
||||
- ai.api (MCP server予定) でユーザー管理
|
||||
|
||||
**移行計画**:
|
||||
- **iOS移植**: Claudeが担当予定
|
||||
- **データ保存**: atproto collection recordに保存(ユーザーがデータを所有)
|
||||
- **不正防止**: OAuth 2.1 scope (実装待ち) + MCP serverで対応
|
||||
- **画像ファイル**: Cloudflare Pagesが最適
|
||||
|
||||
**yui system適用**:
|
||||
- カードの効果がアカウント固有
|
||||
- 改ざん防止によるゲームバランス維持
|
||||
- 将来的にai.verseとの統合で固有スキルと連動
|
||||
|
||||
### ai.ai - 心を読み取るAI
|
||||
**目的**: 個人特化型AI・深層理解システム
|
||||
|
||||
**ai.gptとの関係**:
|
||||
- ai.gpt → ai.ai: 自律送信AIから心理分析AIへの連携
|
||||
- 関係性パラメータの深層分析
|
||||
- ユーザーの思想コア部分の特定支援
|
||||
|
||||
### ai.verse - UEメタバース
|
||||
**目的**: 現実反映型3D世界
|
||||
|
||||
**yui system実装**:
|
||||
- キャラクター ↔ プレイヤー 1:1紐付け
|
||||
- unique skill: そのプレイヤーのみ使用可能
|
||||
- 他プレイヤーは同キャラでも同スキル使用不可
|
||||
|
||||
**統合要素**:
|
||||
- ai.card: ゲーム内アイテムとしてのカード
|
||||
- ai.gpt: NPCとしての自律AI人格
|
||||
- atproto: ゲーム内プロフィール連携
|
||||
|
||||
## データフロー設計
|
||||
|
||||
### 唯一性担保の実装
|
||||
```
|
||||
現実の個人 → atproto account (DID) → ゲーム内avatar → 固有スキル
|
||||
↑_______________________________| (現実の反映)
|
||||
```
|
||||
|
||||
### AI駆動変換システム
|
||||
```
|
||||
遊び・創作活動 → ai.gpt分析 → 業務成果変換 → 企業価値創出
|
||||
↑________________________| (Play-to-Work)
|
||||
```
|
||||
|
||||
### カードゲーム・データ主権フロー
|
||||
```
|
||||
ユーザー → ai.bot mention → カード生成 → atproto collection → ユーザー所有
|
||||
↑ ↓
|
||||
← iOS app表示 ← ai.card API ←
|
||||
```
|
||||
|
||||
## 技術スタック統合
|
||||
|
||||
### Core Infrastructure
|
||||
- **OS**: Rust-based ai.os (Arch Linux base)
|
||||
- **Container**: Docker image distribution
|
||||
- **Identity**: atproto selfhost server + DID管理
|
||||
- **AI**: fastapi_mcp server architecture
|
||||
- **CLI**: Python unified (click/typer) - Rustから移行
|
||||
|
||||
### Game Engine Integration
|
||||
- **Engine**: Unreal Engine (Blueprint)
|
||||
- **Data**: atproto → UE → atproto sync
|
||||
- **Avatar**: 分散SNS profile → 3D character
|
||||
- **Streaming**: game screen = broadcast screen
|
||||
|
||||
### Mobile/Device
|
||||
- **iOS**: ai.card移植 (Claude担当)
|
||||
- **Hardware**: ai.game device (future)
|
||||
- **Interface**: controller-first design
|
||||
|
||||
## 実装優先順位
|
||||
|
||||
### Phase 1: AI基盤強化 (現在進行)
|
||||
- [ ] ai.gpt memory system完全実装
|
||||
- 記憶の階層化(完全ログ→要約→コア→忘却)
|
||||
- 関係性パラメータの時間減衰システム
|
||||
- AI運勢による人格変動機能
|
||||
- [ ] ai.card iOS移植
|
||||
- atproto collection record連携
|
||||
- MCP server化(ai.api刷新)
|
||||
- [ ] fastapi_mcp統一基盤構築
|
||||
|
||||
### Phase 2: ゲーム統合
|
||||
- [ ] ai.verse yui system実装
|
||||
- unique skill機能
|
||||
- atproto連携強化
|
||||
- [ ] ai.gpt ↔ ai.ai連携機能
|
||||
- [ ] 分散SNS ↔ ゲーム同期
|
||||
|
||||
### Phase 3: メタバース浸透
|
||||
- [ ] VTuber配信機能統合
|
||||
- [ ] Play-to-Work変換システム
|
||||
- [ ] ai.game device prototype
|
||||
|
||||
## 将来的な連携構想
|
||||
|
||||
### システム間連携(現在は独立実装)
|
||||
```
|
||||
ai.gpt (自律送信) ←→ ai.ai (心理分析)
|
||||
ai.card (iOS,Web,API) ←→ ai.verse (UEゲーム世界)
|
||||
```
|
||||
|
||||
**共通基盤**: fastapi_mcp
|
||||
**共通思想**: yui system(現実の反映・唯一性担保)
|
||||
|
||||
### データ改ざん防止戦略
|
||||
- **短期**: MCP serverによる検証
|
||||
- **中期**: OAuth 2.1 scope実装待ち
|
||||
- **長期**: ブロックチェーン的整合性チェック
|
||||
|
||||
## AIコミュニケーション最適化
|
||||
|
||||
### プロジェクト要件定義テンプレート
|
||||
```markdown
|
||||
# [プロジェクト名] 要件定義
|
||||
|
||||
## 哲学的背景
|
||||
- 存在子理論との関連:
|
||||
- yui system適用範囲:
|
||||
- 現実反映の仕組み:
|
||||
|
||||
## 技術要件
|
||||
- 使用技術(fastapi_mcp統一):
|
||||
- atproto連携方法:
|
||||
- データ永続化方法:
|
||||
|
||||
## ユーザーストーリー
|
||||
1. ユーザーが...すると
|
||||
2. システムが...を実行し
|
||||
3. 結果として...が実現される
|
||||
|
||||
## 成功指標
|
||||
- 技術的:
|
||||
- 哲学的(唯一性担保):
|
||||
```
|
||||
|
||||
### Claude Code活用戦略
|
||||
1. **小さく始める**: ai.gptのMCP機能拡張から
|
||||
2. **段階的統合**: 各システムを個別に完成させてから統合
|
||||
3. **哲学的一貫性**: 各実装でyui systemとの整合性を確認
|
||||
4. **現実反映**: 実装がどう現実とゲームを繋ぐかを常に明記
|
||||
|
||||
## 開発上の留意点
|
||||
|
||||
### MCP Server設計指針
|
||||
- 各AI(gpt, card, ai, bot)は独立したMCPサーバー
|
||||
- fastapi_mcp基盤で統一
|
||||
- atproto DIDによる認証・認可
|
||||
|
||||
### 記憶・データ管理
|
||||
- **ai.gpt**: 関係性の不可逆性重視
|
||||
- **ai.card**: ユーザーデータ主権重視
|
||||
- **ai.verse**: ゲーム世界の整合性重視
|
||||
|
||||
### 唯一性担保実装
|
||||
- atproto accountとの1:1紐付け必須
|
||||
- 改変不可能性をハッシュ・署名で保証
|
||||
- 他システムでの再現不可能性を技術的に実現
|
||||
|
||||
## 継続的改善
|
||||
- 各プロジェクトでこの設計書を参照
|
||||
- 新機能追加時はyui systemとの整合性をチェック
|
||||
- 他システムへの影響を事前評価
|
||||
- Claude Code導入時の段階的移行計画
|
25
package.json
25
package.json
@ -1,25 +0,0 @@
|
||||
{
|
||||
"name": "card",
|
||||
"version": "0.0.1",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "vue-cli-service serve",
|
||||
"build": "vue-cli-service build",
|
||||
"lint": "vue-cli-service lint"
|
||||
},
|
||||
"dependencies": {
|
||||
"@google/model-viewer": "^3.4.0",
|
||||
"@nuxtjs/proxy": "^2.1.0",
|
||||
"axios": "^1.6.8",
|
||||
"core-js": "^3.6.4",
|
||||
"moment": "^2.29.4",
|
||||
"three": "^0.162.0",
|
||||
"vue": "^2.6.11",
|
||||
"vue-loading-template": "^1.3.2",
|
||||
"vue-meta": "^2.4.0",
|
||||
"vue-template-compiler": "^2.6.14"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vue/cli-service": "~4.5.15"
|
||||
}
|
||||
}
|
1
public
1
public
@ -1 +0,0 @@
|
||||
Subproject commit ceda2fab6ea8819848317b8cc7a5a3a1f3ab4a9e
|
10
readme.md
10
readme.md
@ -1,10 +0,0 @@
|
||||
# card
|
||||
|
||||
- host : [card.syui.ai](https://card.syuiai)
|
||||
|
||||
```sh
|
||||
$ nvm use 16
|
||||
$ yarn install
|
||||
$ yarn dev
|
||||
```
|
||||
|
@ -1,77 +0,0 @@
|
||||
#!/bin/zsh
|
||||
d=${0:a:h}
|
||||
dd=${0:a:h:h}
|
||||
|
||||
echo "1 : [d]efault(no), [b]lack, [s]ilver"
|
||||
read
|
||||
|
||||
url=syui.ai/img
|
||||
|
||||
case $OSTYPE in
|
||||
darwin*)
|
||||
path_nvm_sh="/opt/homebrew/opt/nvm/nvm.sh";;
|
||||
linux*)
|
||||
path_nvm_sh="";;
|
||||
esac
|
||||
|
||||
dir=$dd/public/card
|
||||
static=$dd/public/static/img
|
||||
json=$dd/public/json/card.json
|
||||
mkdir -p $dir
|
||||
mkdir -p $static
|
||||
n=`cat $json|jq "length"`
|
||||
n=`expr $n - 1`
|
||||
|
||||
case $1 in
|
||||
silver|s)
|
||||
bg=$static/card_bg_silver.png
|
||||
br=$static/card_br.png
|
||||
;;
|
||||
black|b)
|
||||
bg=$static/card_bg_black.png
|
||||
br=$static/card_br.png
|
||||
;;
|
||||
default|d|*)
|
||||
bg=$static/card_bg.png
|
||||
br=$static/card_br.png
|
||||
;;
|
||||
esac
|
||||
|
||||
cd $dir
|
||||
export NVM_DIR="$HOME/.nvm"
|
||||
[ -s "$path_nvm_sh" ] && \. "$path_nvm_sh"
|
||||
nvm use 17
|
||||
nvm i squoosh-cli
|
||||
|
||||
for ((i=0;i<=$n;i++))
|
||||
do
|
||||
p=`cat $json|jq -r ".[$i].p"`
|
||||
sid=`cat $json|jq -r ".[$i].src"`
|
||||
s=$static/${sid}.png
|
||||
id=`cat $json|jq -r ".[$i].id"`
|
||||
o=$dir/card_$id.png
|
||||
|
||||
if [ -f $o ];then
|
||||
continue
|
||||
fi
|
||||
|
||||
if [ ! -f $s ];then
|
||||
curl -sL $url/yui_${sid}.png -o $s
|
||||
fi
|
||||
|
||||
if [ ! -f $o ] && [ -n "`echo $s|grep ai_model`" ];then
|
||||
model_card=$dir/${sid}.png
|
||||
model_webp=$dir/${sid}.webp
|
||||
cp -rf $model_card $o
|
||||
squoosh-cli --webp '{"quality":100}' -d ./ --resize '{width:825,height:1080}' $o
|
||||
fi
|
||||
|
||||
if [ ! -f $o ];then
|
||||
#if [ ! -f $o ] && [ -z "`echo $s|grep ai_model`" ];then
|
||||
composite -gravity north -geometry +0+160 -compose over $s $bg $o.back
|
||||
composite -gravity north -geometry +0+0 -compose over $br $o.back $o
|
||||
squoosh-cli --webp '{"quality":100}' -d ./ --resize '{width:825,height:1080}' $o
|
||||
rm $o.back
|
||||
fi
|
||||
|
||||
done
|
@ -1,57 +0,0 @@
|
||||
#!/bin/zsh
|
||||
|
||||
url=https://card.syui.ai
|
||||
d=${0:a:h}
|
||||
dd=${0:a:h:h}
|
||||
dir=$dd/public/card
|
||||
o_dir=$dd/public/static/img
|
||||
static=$dd/public/static/img
|
||||
json=$dd/public/json/card.json
|
||||
mkdir -p $dir
|
||||
mkdir -p $static
|
||||
n=`cat $json|jq "length"`
|
||||
n=`expr $n - 1`
|
||||
|
||||
for ((i=0;i<=$n;i++))
|
||||
do
|
||||
p=`cat $json|jq -r ".[$i].p"`
|
||||
h=`cat $json|jq -r ".[$i].h"`
|
||||
sid=`cat $json|jq -r ".[$i].src"`
|
||||
s=$static/${sid}.png
|
||||
id=`cat $json|jq -r ".[$i].id"`
|
||||
o=$dir/card_$id.png
|
||||
oo=$o_dir/og_${id}.png
|
||||
o_url=$url/card/og_${id}.png
|
||||
index=$o_dir/$id/index.html
|
||||
|
||||
if [ ! -f $oo ];then
|
||||
echo $oo
|
||||
magick convert $o -gravity center -extent 8000x4000 $oo
|
||||
fi
|
||||
|
||||
# mkdir -p $o_dir/$id
|
||||
#
|
||||
#echo '
|
||||
#<!DOCTYPE html>
|
||||
#<html lang="en">
|
||||
#<head>
|
||||
#<title>card.syui.ai</title><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><title>card.syui.ai</title><link href="app.css" rel="preload" as="style"><link href="app.js" rel="preload" as="script"><link href="chunk-vendors.js" rel="preload" as="script"><link href="app.css" rel="stylesheet">
|
||||
#<meta name="twitter:card" content="summary">
|
||||
#<meta property="og:url" content="https://card.syui.ai">
|
||||
#' >! $index
|
||||
#
|
||||
#echo "
|
||||
#<meta property=\"og:title\" content=\"$h\">
|
||||
#<meta property=\"og:description\" content=\"$p\">
|
||||
#<meta property=\"og:image\" content=\"$o_url\">
|
||||
#" >> $index
|
||||
#
|
||||
#echo '
|
||||
#</head>
|
||||
#<body>
|
||||
#<div id="app"></div><script src="chunk-vendors.js"></script><script src="app.js"></script>
|
||||
#</body>
|
||||
#</html>
|
||||
#' >> $index
|
||||
|
||||
done
|
1910
src/App.vue
1910
src/App.vue
File diff suppressed because it is too large
Load Diff
@ -1,9 +0,0 @@
|
||||
import Vue from 'vue'
|
||||
import App from './App.vue'
|
||||
import VueMeta from 'vue-meta'
|
||||
Vue.use(VueMeta)
|
||||
Vue.config.productionTip = false
|
||||
|
||||
new Vue({
|
||||
render: h => h(App)
|
||||
}).$mount('#app')
|
@ -1,23 +0,0 @@
|
||||
module.exports = {
|
||||
devServer: {
|
||||
proxy: {
|
||||
"^/api*": {
|
||||
target: "https://api.syui.ai",
|
||||
pathRewrite: { "^/api": "" },
|
||||
}
|
||||
}
|
||||
},
|
||||
publicPath: "/",
|
||||
configureWebpack: {
|
||||
output: {
|
||||
filename: '[name].js',
|
||||
chunkFilename: '[name].js'
|
||||
}
|
||||
},
|
||||
css: {
|
||||
extract: {
|
||||
filename: '[name].css',
|
||||
chunkFilename: '[name].css'
|
||||
},
|
||||
},
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user