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