4.1 KiB
4.1 KiB
開発者向けガイド
アーキテクチャ
ディレクトリ構造
ai_gpt/
├── src/ai_gpt/
│ ├── __init__.py
│ ├── models.py # データモデル定義
│ ├── memory.py # 記憶管理システム
│ ├── relationship.py # 関係性トラッカー
│ ├── fortune.py # AI運勢システム
│ ├── persona.py # 統合人格システム
│ ├── transmission.py # 送信コントローラー
│ ├── scheduler.py # スケジューラー
│ ├── config.py # 設定管理
│ ├── ai_provider.py # AI統合(Ollama/OpenAI)
│ ├── mcp_server.py # MCP Server実装
│ └── cli.py # CLIインターフェース
├── docs/ # ドキュメント
├── tests/ # テスト
└── pyproject.toml # プロジェクト設定
主要コンポーネント
MemoryManager
階層的記憶システムの実装。会話を記録し、要約・コア判定・忘却を管理。
memory = MemoryManager(data_dir)
memory.add_conversation(conversation)
memory.summarize_memories(user_id)
memory.identify_core_memories()
memory.apply_forgetting()
RelationshipTracker
ユーザーとの関係性を追跡。不可逆的なダメージと時間減衰を実装。
tracker = RelationshipTracker(data_dir)
relationship = tracker.update_interaction(user_id, delta)
tracker.apply_time_decay()
Persona
すべてのコンポーネントを統合し、一貫した人格を提供。
persona = Persona(data_dir)
response, delta = persona.process_interaction(user_id, message)
state = persona.get_current_state()
拡張方法
新しいAIプロバイダーの追加
ai_provider.py
に新しいプロバイダークラスを作成:
class CustomProvider:
async def generate_response(
self,
prompt: str,
persona_state: PersonaState,
memories: List[Memory],
system_prompt: Optional[str] = None
) -> str:
# 実装
pass
create_ai_provider
関数に追加:
def create_ai_provider(provider: str, model: str, **kwargs):
if provider == "custom":
return CustomProvider(model=model, **kwargs)
# ...
新しいスケジュールタスクの追加
TaskType
enumに追加:
class TaskType(str, Enum):
CUSTOM_TASK = "custom_task"
- ハンドラーを実装:
async def _handle_custom_task(self, task: ScheduledTask):
# タスクの実装
pass
task_handlers
に登録:
self.task_handlers[TaskType.CUSTOM_TASK] = self._handle_custom_task
新しいMCPツールの追加
mcp_server.py
の_register_tools
メソッドに追加:
@self.server.tool("custom_tool")
async def custom_tool(param1: str, param2: int) -> Dict[str, Any]:
"""カスタムツールの説明"""
# 実装
return {"result": "value"}
テスト
# テストの実行(将来実装)
pytest tests/
# 特定のテスト
pytest tests/test_memory.py
デバッグ
ログレベルの設定
import logging
logging.basicConfig(level=logging.DEBUG)
データファイルの直接確認
# 関係性データを確認
cat ~/.config/aigpt/data/relationships.json | jq
# 記憶データを確認
cat ~/.config/aigpt/data/memories.json | jq
貢献方法
- フォークする
- フィーチャーブランチを作成 (
git checkout -b feature/amazing-feature
) - 変更をコミット (
git commit -m 'Add amazing feature'
) - ブランチにプッシュ (
git push origin feature/amazing-feature
) - プルリクエストを作成
設計原則
- 不可逆性: 一度失われた関係性は回復しない
- 階層性: 記憶は重要度によって階層化される
- 自律性: AIは関係性に基づいて自発的に行動する
- 唯一性: 各ユーザーとの関係は唯一無二
ライセンス
MIT License