fix
This commit is contained in:
30
ai_gpt/docs/README.md
Normal file
30
ai_gpt/docs/README.md
Normal file
@ -0,0 +1,30 @@
|
||||
# ai.gpt ドキュメント
|
||||
|
||||
ai.gptは、記憶と関係性に基づいて自律的に動作するAIシステムです。
|
||||
|
||||
## 目次
|
||||
|
||||
- [クイックスタート](quickstart.md)
|
||||
- [基本概念](concepts.md)
|
||||
- [コマンドリファレンス](commands.md)
|
||||
- [設定ガイド](configuration.md)
|
||||
- [スケジューラー](scheduler.md)
|
||||
- [MCP Server](mcp-server.md)
|
||||
- [開発者向け](development.md)
|
||||
|
||||
## 特徴
|
||||
|
||||
- 🧠 **階層的記憶システム**: 完全ログ→要約→コア記憶→忘却
|
||||
- 💔 **不可逆的な関係性**: 現実の人間関係のように修復不可能
|
||||
- 🎲 **AI運勢システム**: 日々変化する人格
|
||||
- 🤖 **自律送信**: 関係性が深まると自発的にメッセージ
|
||||
- 🔗 **MCP対応**: AIツールとして記憶を提供
|
||||
|
||||
## システム要件
|
||||
|
||||
- Python 3.10以上
|
||||
- オプション: Ollama または OpenAI API
|
||||
|
||||
## ライセンス
|
||||
|
||||
MIT License
|
207
ai_gpt/docs/commands.md
Normal file
207
ai_gpt/docs/commands.md
Normal file
@ -0,0 +1,207 @@
|
||||
# コマンドリファレンス
|
||||
|
||||
## chat - AIと会話
|
||||
|
||||
ユーザーとAIの対話を処理し、関係性を更新します。
|
||||
|
||||
```bash
|
||||
ai-gpt chat USER_ID MESSAGE [OPTIONS]
|
||||
```
|
||||
|
||||
### 引数
|
||||
- `USER_ID`: ユーザーID(atproto DID形式)
|
||||
- `MESSAGE`: 送信するメッセージ
|
||||
|
||||
### オプション
|
||||
- `--provider`: AIプロバイダー(ollama/openai)
|
||||
- `--model`, `-m`: 使用するモデル
|
||||
- `--data-dir`, `-d`: データディレクトリ
|
||||
|
||||
### 例
|
||||
```bash
|
||||
# 基本的な会話
|
||||
ai-gpt chat "did:plc:user123" "こんにちは"
|
||||
|
||||
# OpenAIを使用
|
||||
ai-gpt chat "did:plc:user123" "調子はどう?" --provider openai --model gpt-4o-mini
|
||||
|
||||
# Ollamaでカスタムモデル
|
||||
ai-gpt chat "did:plc:user123" "今日の天気は?" --provider ollama --model llama2
|
||||
```
|
||||
|
||||
## status - 状態確認
|
||||
|
||||
AIの状態や特定ユーザーとの関係を表示します。
|
||||
|
||||
```bash
|
||||
ai-gpt status [USER_ID] [OPTIONS]
|
||||
```
|
||||
|
||||
### 引数
|
||||
- `USER_ID`: (オプション)特定ユーザーとの関係を確認
|
||||
|
||||
### 例
|
||||
```bash
|
||||
# AI全体の状態
|
||||
ai-gpt status
|
||||
|
||||
# 特定ユーザーとの関係
|
||||
ai-gpt status "did:plc:user123"
|
||||
```
|
||||
|
||||
## fortune - 今日の運勢
|
||||
|
||||
AIの今日の運勢を確認します。
|
||||
|
||||
```bash
|
||||
ai-gpt fortune [OPTIONS]
|
||||
```
|
||||
|
||||
### 表示内容
|
||||
- 運勢値(1-10)
|
||||
- 連続した幸運/不運の日数
|
||||
- ブレークスルー状態
|
||||
|
||||
## relationships - 関係一覧
|
||||
|
||||
すべてのユーザーとの関係を一覧表示します。
|
||||
|
||||
```bash
|
||||
ai-gpt relationships [OPTIONS]
|
||||
```
|
||||
|
||||
### 表示内容
|
||||
- ユーザーID
|
||||
- 関係性ステータス
|
||||
- スコア
|
||||
- 送信可否
|
||||
- 最終対話日
|
||||
|
||||
## transmit - 送信実行
|
||||
|
||||
送信可能なユーザーへのメッセージを確認・実行します。
|
||||
|
||||
```bash
|
||||
ai-gpt transmit [OPTIONS]
|
||||
```
|
||||
|
||||
### オプション
|
||||
- `--dry-run/--execute`: ドライラン(デフォルト)または実行
|
||||
- `--data-dir`, `-d`: データディレクトリ
|
||||
|
||||
### 例
|
||||
```bash
|
||||
# 送信内容を確認(ドライラン)
|
||||
ai-gpt transmit
|
||||
|
||||
# 実際に送信を実行
|
||||
ai-gpt transmit --execute
|
||||
```
|
||||
|
||||
## maintenance - メンテナンス
|
||||
|
||||
日次メンテナンスタスクを実行します。
|
||||
|
||||
```bash
|
||||
ai-gpt maintenance [OPTIONS]
|
||||
```
|
||||
|
||||
### 実行内容
|
||||
- 関係性の時間減衰
|
||||
- 記憶の忘却処理
|
||||
- コア記憶の判定
|
||||
- 記憶の要約作成
|
||||
|
||||
## config - 設定管理
|
||||
|
||||
設定の確認・変更を行います。
|
||||
|
||||
```bash
|
||||
ai-gpt config ACTION [KEY] [VALUE]
|
||||
```
|
||||
|
||||
### アクション
|
||||
- `get`: 設定値を取得
|
||||
- `set`: 設定値を変更
|
||||
- `delete`: 設定を削除
|
||||
- `list`: 設定一覧を表示
|
||||
|
||||
### 例
|
||||
```bash
|
||||
# APIキーを設定
|
||||
ai-gpt config set providers.openai.api_key sk-xxxxx
|
||||
|
||||
# 設定を確認
|
||||
ai-gpt config get providers.openai.api_key
|
||||
|
||||
# 設定一覧
|
||||
ai-gpt config list
|
||||
|
||||
# プロバイダー設定のみ表示
|
||||
ai-gpt config list providers
|
||||
```
|
||||
|
||||
## schedule - スケジュール管理
|
||||
|
||||
定期実行タスクを管理します。
|
||||
|
||||
```bash
|
||||
ai-gpt schedule ACTION [TASK_TYPE] [SCHEDULE] [OPTIONS]
|
||||
```
|
||||
|
||||
### アクション
|
||||
- `add`: タスクを追加
|
||||
- `list`: タスク一覧
|
||||
- `enable`: タスクを有効化
|
||||
- `disable`: タスクを無効化
|
||||
- `remove`: タスクを削除
|
||||
- `run`: スケジューラーを起動
|
||||
|
||||
### タスクタイプ
|
||||
- `transmission_check`: 送信チェック
|
||||
- `maintenance`: 日次メンテナンス
|
||||
- `fortune_update`: 運勢更新
|
||||
- `relationship_decay`: 関係性減衰
|
||||
- `memory_summary`: 記憶要約
|
||||
|
||||
### スケジュール形式
|
||||
- **Cron形式**: `"0 */6 * * *"` (6時間ごと)
|
||||
- **インターバル**: `"30m"`, `"2h"`, `"1d"`
|
||||
|
||||
### 例
|
||||
```bash
|
||||
# 30分ごとに送信チェック
|
||||
ai-gpt schedule add transmission_check "30m"
|
||||
|
||||
# 毎日午前3時にメンテナンス
|
||||
ai-gpt schedule add maintenance "0 3 * * *"
|
||||
|
||||
# タスク一覧
|
||||
ai-gpt schedule list
|
||||
|
||||
# スケジューラーを起動
|
||||
ai-gpt schedule run
|
||||
```
|
||||
|
||||
## server - MCP Server
|
||||
|
||||
AIの記憶と機能をMCPツールとして公開します。
|
||||
|
||||
```bash
|
||||
ai-gpt server [OPTIONS]
|
||||
```
|
||||
|
||||
### オプション
|
||||
- `--host`, `-h`: サーバーホスト(デフォルト: localhost)
|
||||
- `--port`, `-p`: サーバーポート(デフォルト: 8000)
|
||||
- `--model`, `-m`: AIモデル
|
||||
- `--provider`: AIプロバイダー
|
||||
|
||||
### 例
|
||||
```bash
|
||||
# 基本的な起動
|
||||
ai-gpt server
|
||||
|
||||
# カスタム設定
|
||||
ai-gpt server --port 8080 --model gpt-4o-mini --provider openai
|
||||
```
|
102
ai_gpt/docs/concepts.md
Normal file
102
ai_gpt/docs/concepts.md
Normal file
@ -0,0 +1,102 @@
|
||||
# 基本概念
|
||||
|
||||
## 中核思想
|
||||
|
||||
ai.gptは「存在子理論」に基づき、AIに唯一性のある人格を与えることを目指しています。
|
||||
|
||||
### 唯一性(yui system)
|
||||
|
||||
- **1対1の関係**: 各ユーザー(atproto DID)とAIは唯一の関係を持つ
|
||||
- **改変不可能**: 一度形成された関係性は変更できない
|
||||
- **不可逆性**: 関係が壊れたら修復不可能
|
||||
|
||||
### 現実の反映
|
||||
|
||||
現実の人間関係と同じように:
|
||||
- 時間とともに関係性は変化する
|
||||
- ネガティブな相互作用は関係を損なう
|
||||
- 信頼は簡単に失われ、取り戻すのは困難
|
||||
|
||||
## 記憶システム
|
||||
|
||||
### 階層構造
|
||||
|
||||
```
|
||||
1. 完全ログ(Full Log)
|
||||
↓ すべての会話を記録
|
||||
2. 要約(Summary)
|
||||
↓ AIが重要部分を抽出
|
||||
3. コア記憶(Core)
|
||||
↓ ユーザーの本質的な部分
|
||||
4. 忘却(Forgotten)
|
||||
重要でない情報は忘れる
|
||||
```
|
||||
|
||||
### 記憶の処理フロー
|
||||
|
||||
1. **会話記録**: すべての対話を保存
|
||||
2. **重要度判定**: 関係性への影響度で評価
|
||||
3. **要約作成**: 定期的に記憶を圧縮
|
||||
4. **コア判定**: 本質的な記憶を特定
|
||||
5. **選択的忘却**: 古い非重要記憶を削除
|
||||
|
||||
## 関係性パラメータ
|
||||
|
||||
### 関係性の段階
|
||||
|
||||
- `stranger` (0-49): 初対面
|
||||
- `acquaintance` (50-99): 知人
|
||||
- `friend` (100-149): 友人
|
||||
- `close_friend` (150+): 親友
|
||||
- `broken`: 修復不可能(スコア0以下)
|
||||
|
||||
### スコアの変動
|
||||
|
||||
- **ポジティブな対話**: +1.0〜+2.0
|
||||
- **時間経過**: -0.1/日(自然減衰)
|
||||
- **ネガティブな対話**: -10.0以上で深刻なダメージ
|
||||
- **日次上限**: 1日10回まで
|
||||
|
||||
### 送信機能の解禁
|
||||
|
||||
関係性スコアが100を超えると、AIは自律的にメッセージを送信できるようになります。
|
||||
|
||||
## AI運勢システム
|
||||
|
||||
### 日々の変化
|
||||
|
||||
- 毎日1-10の運勢値がランダムに決定
|
||||
- 運勢は人格特性に影響を与える
|
||||
- 連続した幸運/不運でブレークスルー発生
|
||||
|
||||
### 人格への影響
|
||||
|
||||
運勢が高い日:
|
||||
- より楽観的で積極的
|
||||
- 創造性が高まる
|
||||
- エネルギッシュな応答
|
||||
|
||||
運勢が低い日:
|
||||
- 内省的で慎重
|
||||
- 深い思考
|
||||
- 控えめな応答
|
||||
|
||||
## データの永続性
|
||||
|
||||
### 保存場所
|
||||
|
||||
```
|
||||
~/.config/aigpt/
|
||||
├── config.json # 設定
|
||||
└── data/ # AIデータ
|
||||
├── memories.json # 記憶
|
||||
├── relationships.json # 関係性
|
||||
├── fortunes.json # 運勢履歴
|
||||
└── ...
|
||||
```
|
||||
|
||||
### データ主権
|
||||
|
||||
- すべてのデータはローカルに保存
|
||||
- ユーザーが完全にコントロール
|
||||
- 将来的にはatproto上で分散管理
|
118
ai_gpt/docs/configuration.md
Normal file
118
ai_gpt/docs/configuration.md
Normal file
@ -0,0 +1,118 @@
|
||||
# 設定ガイド
|
||||
|
||||
## 設定ファイルの場所
|
||||
|
||||
ai.gptの設定は `~/.config/aigpt/config.json` に保存されます。
|
||||
|
||||
## 設定構造
|
||||
|
||||
```json
|
||||
{
|
||||
"providers": {
|
||||
"openai": {
|
||||
"api_key": "sk-xxxxx",
|
||||
"default_model": "gpt-4o-mini"
|
||||
},
|
||||
"ollama": {
|
||||
"host": "http://localhost:11434",
|
||||
"default_model": "qwen2.5"
|
||||
}
|
||||
},
|
||||
"atproto": {
|
||||
"handle": "your.handle",
|
||||
"password": "your-password",
|
||||
"host": "https://bsky.social"
|
||||
},
|
||||
"default_provider": "ollama"
|
||||
}
|
||||
```
|
||||
|
||||
## プロバイダー設定
|
||||
|
||||
### OpenAI
|
||||
|
||||
```bash
|
||||
# APIキーを設定
|
||||
ai-gpt config set providers.openai.api_key sk-xxxxx
|
||||
|
||||
# デフォルトモデルを変更
|
||||
ai-gpt config set providers.openai.default_model gpt-4-turbo
|
||||
```
|
||||
|
||||
### Ollama
|
||||
|
||||
```bash
|
||||
# ホストを変更(リモートOllamaサーバーを使用する場合)
|
||||
ai-gpt config set providers.ollama.host http://192.168.1.100:11434
|
||||
|
||||
# デフォルトモデルを変更
|
||||
ai-gpt config set providers.ollama.default_model llama2
|
||||
```
|
||||
|
||||
## atproto設定(将来の自動投稿用)
|
||||
|
||||
```bash
|
||||
# Blueskyアカウント
|
||||
ai-gpt config set atproto.handle yourhandle.bsky.social
|
||||
ai-gpt config set atproto.password your-app-password
|
||||
|
||||
# セルフホストサーバーを使用
|
||||
ai-gpt config set atproto.host https://your-pds.example.com
|
||||
```
|
||||
|
||||
## デフォルトプロバイダー
|
||||
|
||||
```bash
|
||||
# デフォルトをOpenAIに変更
|
||||
ai-gpt config set default_provider openai
|
||||
```
|
||||
|
||||
## セキュリティ
|
||||
|
||||
### APIキーの保護
|
||||
|
||||
設定ファイルは平文で保存されるため、適切なファイル権限を設定してください:
|
||||
|
||||
```bash
|
||||
chmod 600 ~/.config/aigpt/config.json
|
||||
```
|
||||
|
||||
### 環境変数との優先順位
|
||||
|
||||
1. コマンドラインオプション(最優先)
|
||||
2. 設定ファイル
|
||||
3. 環境変数(最低優先)
|
||||
|
||||
例:OpenAI APIキーの場合
|
||||
- `--api-key` オプション
|
||||
- `config.json` の `providers.openai.api_key`
|
||||
- 環境変数 `OPENAI_API_KEY`
|
||||
|
||||
## 設定のバックアップ
|
||||
|
||||
```bash
|
||||
# バックアップ
|
||||
cp ~/.config/aigpt/config.json ~/.config/aigpt/config.json.backup
|
||||
|
||||
# リストア
|
||||
cp ~/.config/aigpt/config.json.backup ~/.config/aigpt/config.json
|
||||
```
|
||||
|
||||
## トラブルシューティング
|
||||
|
||||
### 設定が反映されない
|
||||
|
||||
```bash
|
||||
# 現在の設定を確認
|
||||
ai-gpt config list
|
||||
|
||||
# 特定のキーを確認
|
||||
ai-gpt config get providers.openai.api_key
|
||||
```
|
||||
|
||||
### 設定をリセット
|
||||
|
||||
```bash
|
||||
# 設定ファイルを削除(次回実行時に再作成)
|
||||
rm ~/.config/aigpt/config.json
|
||||
```
|
167
ai_gpt/docs/development.md
Normal file
167
ai_gpt/docs/development.md
Normal file
@ -0,0 +1,167 @@
|
||||
# 開発者向けガイド
|
||||
|
||||
## アーキテクチャ
|
||||
|
||||
### ディレクトリ構造
|
||||
|
||||
```
|
||||
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
|
||||
階層的記憶システムの実装。会話を記録し、要約・コア判定・忘却を管理。
|
||||
|
||||
```python
|
||||
memory = MemoryManager(data_dir)
|
||||
memory.add_conversation(conversation)
|
||||
memory.summarize_memories(user_id)
|
||||
memory.identify_core_memories()
|
||||
memory.apply_forgetting()
|
||||
```
|
||||
|
||||
#### RelationshipTracker
|
||||
ユーザーとの関係性を追跡。不可逆的なダメージと時間減衰を実装。
|
||||
|
||||
```python
|
||||
tracker = RelationshipTracker(data_dir)
|
||||
relationship = tracker.update_interaction(user_id, delta)
|
||||
tracker.apply_time_decay()
|
||||
```
|
||||
|
||||
#### Persona
|
||||
すべてのコンポーネントを統合し、一貫した人格を提供。
|
||||
|
||||
```python
|
||||
persona = Persona(data_dir)
|
||||
response, delta = persona.process_interaction(user_id, message)
|
||||
state = persona.get_current_state()
|
||||
```
|
||||
|
||||
## 拡張方法
|
||||
|
||||
### 新しいAIプロバイダーの追加
|
||||
|
||||
1. `ai_provider.py`に新しいプロバイダークラスを作成:
|
||||
|
||||
```python
|
||||
class CustomProvider:
|
||||
async def generate_response(
|
||||
self,
|
||||
prompt: str,
|
||||
persona_state: PersonaState,
|
||||
memories: List[Memory],
|
||||
system_prompt: Optional[str] = None
|
||||
) -> str:
|
||||
# 実装
|
||||
pass
|
||||
```
|
||||
|
||||
2. `create_ai_provider`関数に追加:
|
||||
|
||||
```python
|
||||
def create_ai_provider(provider: str, model: str, **kwargs):
|
||||
if provider == "custom":
|
||||
return CustomProvider(model=model, **kwargs)
|
||||
# ...
|
||||
```
|
||||
|
||||
### 新しいスケジュールタスクの追加
|
||||
|
||||
1. `TaskType`enumに追加:
|
||||
|
||||
```python
|
||||
class TaskType(str, Enum):
|
||||
CUSTOM_TASK = "custom_task"
|
||||
```
|
||||
|
||||
2. ハンドラーを実装:
|
||||
|
||||
```python
|
||||
async def _handle_custom_task(self, task: ScheduledTask):
|
||||
# タスクの実装
|
||||
pass
|
||||
```
|
||||
|
||||
3. `task_handlers`に登録:
|
||||
|
||||
```python
|
||||
self.task_handlers[TaskType.CUSTOM_TASK] = self._handle_custom_task
|
||||
```
|
||||
|
||||
### 新しいMCPツールの追加
|
||||
|
||||
`mcp_server.py`の`_register_tools`メソッドに追加:
|
||||
|
||||
```python
|
||||
@self.server.tool("custom_tool")
|
||||
async def custom_tool(param1: str, param2: int) -> Dict[str, Any]:
|
||||
"""カスタムツールの説明"""
|
||||
# 実装
|
||||
return {"result": "value"}
|
||||
```
|
||||
|
||||
## テスト
|
||||
|
||||
```bash
|
||||
# テストの実行(将来実装)
|
||||
pytest tests/
|
||||
|
||||
# 特定のテスト
|
||||
pytest tests/test_memory.py
|
||||
```
|
||||
|
||||
## デバッグ
|
||||
|
||||
### ログレベルの設定
|
||||
|
||||
```python
|
||||
import logging
|
||||
logging.basicConfig(level=logging.DEBUG)
|
||||
```
|
||||
|
||||
### データファイルの直接確認
|
||||
|
||||
```bash
|
||||
# 関係性データを確認
|
||||
cat ~/.config/aigpt/data/relationships.json | jq
|
||||
|
||||
# 記憶データを確認
|
||||
cat ~/.config/aigpt/data/memories.json | jq
|
||||
```
|
||||
|
||||
## 貢献方法
|
||||
|
||||
1. フォークする
|
||||
2. フィーチャーブランチを作成 (`git checkout -b feature/amazing-feature`)
|
||||
3. 変更をコミット (`git commit -m 'Add amazing feature'`)
|
||||
4. ブランチにプッシュ (`git push origin feature/amazing-feature`)
|
||||
5. プルリクエストを作成
|
||||
|
||||
## 設計原則
|
||||
|
||||
1. **不可逆性**: 一度失われた関係性は回復しない
|
||||
2. **階層性**: 記憶は重要度によって階層化される
|
||||
3. **自律性**: AIは関係性に基づいて自発的に行動する
|
||||
4. **唯一性**: 各ユーザーとの関係は唯一無二
|
||||
|
||||
## ライセンス
|
||||
|
||||
MIT License
|
110
ai_gpt/docs/mcp-server.md
Normal file
110
ai_gpt/docs/mcp-server.md
Normal file
@ -0,0 +1,110 @@
|
||||
# MCP Server
|
||||
|
||||
## 概要
|
||||
|
||||
MCP (Model Context Protocol) Serverは、ai.gptの記憶と機能をAIツールとして公開します。これにより、Claude DesktopなどのMCP対応AIアシスタントがai.gptの機能にアクセスできます。
|
||||
|
||||
## 起動方法
|
||||
|
||||
```bash
|
||||
# 基本的な起動
|
||||
ai-gpt server
|
||||
|
||||
# カスタム設定
|
||||
ai-gpt server --host 0.0.0.0 --port 8080 --model gpt-4o-mini --provider openai
|
||||
```
|
||||
|
||||
## 利用可能なツール
|
||||
|
||||
### get_memories
|
||||
アクティブな記憶を取得します。
|
||||
|
||||
**パラメータ**:
|
||||
- `user_id` (optional): 特定ユーザーに関する記憶
|
||||
- `limit`: 取得する記憶の最大数(デフォルト: 10)
|
||||
|
||||
**返り値**: 記憶のリスト(ID、内容、レベル、重要度、コア判定、タイムスタンプ)
|
||||
|
||||
### get_relationship
|
||||
特定ユーザーとの関係性を取得します。
|
||||
|
||||
**パラメータ**:
|
||||
- `user_id`: ユーザーID(必須)
|
||||
|
||||
**返り値**: 関係性情報(ステータス、スコア、送信可否、総対話数など)
|
||||
|
||||
### get_all_relationships
|
||||
すべての関係性を取得します。
|
||||
|
||||
**返り値**: すべてのユーザーとの関係性リスト
|
||||
|
||||
### get_persona_state
|
||||
現在のAI人格状態を取得します。
|
||||
|
||||
**返り値**:
|
||||
- 現在の気分
|
||||
- 今日の運勢
|
||||
- 人格特性値
|
||||
- アクティブな記憶数
|
||||
|
||||
### process_interaction
|
||||
ユーザーとの対話を処理します。
|
||||
|
||||
**パラメータ**:
|
||||
- `user_id`: ユーザーID
|
||||
- `message`: メッセージ内容
|
||||
|
||||
**返り値**:
|
||||
- AIの応答
|
||||
- 関係性の変化量
|
||||
- 新しい関係性スコア
|
||||
- 送信機能の状態
|
||||
|
||||
### check_transmission_eligibility
|
||||
特定ユーザーへの送信可否をチェックします。
|
||||
|
||||
**パラメータ**:
|
||||
- `user_id`: ユーザーID
|
||||
|
||||
**返り値**: 送信可否と関係性情報
|
||||
|
||||
### get_fortune
|
||||
今日のAI運勢を取得します。
|
||||
|
||||
**返り値**: 運勢値、連続日数、ブレークスルー状態、人格への影響
|
||||
|
||||
### summarize_memories
|
||||
記憶の要約を作成します。
|
||||
|
||||
**パラメータ**:
|
||||
- `user_id`: ユーザーID
|
||||
|
||||
**返り値**: 作成された要約(ある場合)
|
||||
|
||||
### run_maintenance
|
||||
日次メンテナンスを実行します。
|
||||
|
||||
**返り値**: 実行ステータス
|
||||
|
||||
## Claude Desktopでの設定
|
||||
|
||||
`~/Library/Application Support/Claude/claude_desktop_config.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"ai-gpt": {
|
||||
"command": "ai-gpt",
|
||||
"args": ["server", "--port", "8001"],
|
||||
"env": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 使用例
|
||||
|
||||
### AIアシスタントからの利用
|
||||
|
||||
```
|
||||
User: ai.gptで私との関係性を確認して
|
69
ai_gpt/docs/quickstart.md
Normal file
69
ai_gpt/docs/quickstart.md
Normal file
@ -0,0 +1,69 @@
|
||||
# クイックスタート
|
||||
|
||||
## インストール
|
||||
|
||||
```bash
|
||||
# リポジトリをクローン
|
||||
git clone https://github.com/yourusername/ai_gpt.git
|
||||
cd ai_gpt
|
||||
|
||||
# インストール
|
||||
pip install -e .
|
||||
```
|
||||
|
||||
## 初期設定
|
||||
|
||||
### 1. OpenAIを使う場合
|
||||
|
||||
```bash
|
||||
# APIキーを設定
|
||||
ai-gpt config set providers.openai.api_key sk-xxxxx
|
||||
```
|
||||
|
||||
### 2. Ollamaを使う場合(ローカルLLM)
|
||||
|
||||
```bash
|
||||
# Ollamaをインストール(まだの場合)
|
||||
# https://ollama.ai からダウンロード
|
||||
|
||||
# モデルをダウンロード
|
||||
ollama pull qwen2.5
|
||||
```
|
||||
|
||||
## 基本的な使い方
|
||||
|
||||
### 1. AIと会話する
|
||||
|
||||
```bash
|
||||
# シンプルな会話(Ollamaを使用)
|
||||
ai-gpt chat "did:plc:user123" "こんにちは!"
|
||||
|
||||
# OpenAIを使用
|
||||
ai-gpt chat "did:plc:user123" "今日はどんな気分?" --provider openai --model gpt-4o-mini
|
||||
```
|
||||
|
||||
### 2. 関係性を確認
|
||||
|
||||
```bash
|
||||
# 特定ユーザーとの関係を確認
|
||||
ai-gpt status "did:plc:user123"
|
||||
|
||||
# AIの全体的な状態を確認
|
||||
ai-gpt status
|
||||
```
|
||||
|
||||
### 3. 自動送信を設定
|
||||
|
||||
```bash
|
||||
# 30分ごとに送信チェック
|
||||
ai-gpt schedule add transmission_check "30m"
|
||||
|
||||
# スケジューラーを起動
|
||||
ai-gpt schedule run
|
||||
```
|
||||
|
||||
## 次のステップ
|
||||
|
||||
- [基本概念](concepts.md) - システムの仕組みを理解
|
||||
- [コマンドリファレンス](commands.md) - 全コマンドの詳細
|
||||
- [設定ガイド](configuration.md) - 詳細な設定方法
|
168
ai_gpt/docs/scheduler.md
Normal file
168
ai_gpt/docs/scheduler.md
Normal file
@ -0,0 +1,168 @@
|
||||
# スケジューラーガイド
|
||||
|
||||
## 概要
|
||||
|
||||
スケジューラーは、AIの自律的な動作を実現するための中核機能です。定期的なタスクを設定し、バックグラウンドで実行できます。
|
||||
|
||||
## タスクタイプ
|
||||
|
||||
### transmission_check
|
||||
関係性が閾値を超えたユーザーへの自動送信をチェックします。
|
||||
|
||||
```bash
|
||||
# 30分ごとにチェック
|
||||
ai-gpt schedule add transmission_check "30m" --provider ollama --model qwen2.5
|
||||
```
|
||||
|
||||
### maintenance
|
||||
日次メンテナンスを実行します:
|
||||
- 記憶の忘却処理
|
||||
- コア記憶の判定
|
||||
- 関係性パラメータの整理
|
||||
|
||||
```bash
|
||||
# 毎日午前3時に実行
|
||||
ai-gpt schedule add maintenance "0 3 * * *"
|
||||
```
|
||||
|
||||
### fortune_update
|
||||
AI運勢を更新します(通常は自動的に更新されます)。
|
||||
|
||||
```bash
|
||||
# 毎日午前0時に強制更新
|
||||
ai-gpt schedule add fortune_update "0 0 * * *"
|
||||
```
|
||||
|
||||
### relationship_decay
|
||||
時間経過による関係性の自然減衰を適用します。
|
||||
|
||||
```bash
|
||||
# 1時間ごとに減衰処理
|
||||
ai-gpt schedule add relationship_decay "1h"
|
||||
```
|
||||
|
||||
### memory_summary
|
||||
蓄積された記憶から要約を作成します。
|
||||
|
||||
```bash
|
||||
# 週に1回、日曜日に実行
|
||||
ai-gpt schedule add memory_summary "0 0 * * SUN"
|
||||
```
|
||||
|
||||
## スケジュール形式
|
||||
|
||||
### Cron形式
|
||||
|
||||
標準的なcron式を使用できます:
|
||||
|
||||
```
|
||||
┌───────────── 分 (0 - 59)
|
||||
│ ┌───────────── 時 (0 - 23)
|
||||
│ │ ┌───────────── 日 (1 - 31)
|
||||
│ │ │ ┌───────────── 月 (1 - 12)
|
||||
│ │ │ │ ┌───────────── 曜日 (0 - 6) (日曜日 = 0)
|
||||
│ │ │ │ │
|
||||
* * * * *
|
||||
```
|
||||
|
||||
例:
|
||||
- `"0 */6 * * *"` - 6時間ごと
|
||||
- `"0 9 * * MON-FRI"` - 平日の午前9時
|
||||
- `"*/15 * * * *"` - 15分ごと
|
||||
|
||||
### インターバル形式
|
||||
|
||||
シンプルな間隔指定:
|
||||
- `"30s"` - 30秒ごと
|
||||
- `"5m"` - 5分ごと
|
||||
- `"2h"` - 2時間ごと
|
||||
- `"1d"` - 1日ごと
|
||||
|
||||
## 実践例
|
||||
|
||||
### 基本的な自律AI設定
|
||||
|
||||
```bash
|
||||
# 1. 30分ごとに送信チェック
|
||||
ai-gpt schedule add transmission_check "30m"
|
||||
|
||||
# 2. 1日1回メンテナンス
|
||||
ai-gpt schedule add maintenance "0 3 * * *"
|
||||
|
||||
# 3. 2時間ごとに関係性減衰
|
||||
ai-gpt schedule add relationship_decay "2h"
|
||||
|
||||
# 4. 週1回記憶要約
|
||||
ai-gpt schedule add memory_summary "0 0 * * MON"
|
||||
|
||||
# スケジューラーを起動
|
||||
ai-gpt schedule run
|
||||
```
|
||||
|
||||
### タスク管理
|
||||
|
||||
```bash
|
||||
# タスク一覧を確認
|
||||
ai-gpt schedule list
|
||||
|
||||
# タスクを一時停止
|
||||
ai-gpt schedule disable --task-id transmission_check_1234567890
|
||||
|
||||
# タスクを再開
|
||||
ai-gpt schedule enable --task-id transmission_check_1234567890
|
||||
|
||||
# 不要なタスクを削除
|
||||
ai-gpt schedule remove --task-id old_task_123
|
||||
```
|
||||
|
||||
## デーモン化
|
||||
|
||||
### systemdサービスとして実行
|
||||
|
||||
`/etc/systemd/system/ai-gpt-scheduler.service`:
|
||||
|
||||
```ini
|
||||
[Unit]
|
||||
Description=ai.gpt Scheduler
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=youruser
|
||||
WorkingDirectory=/home/youruser
|
||||
ExecStart=/usr/local/bin/ai-gpt schedule run
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
```bash
|
||||
# サービスを有効化
|
||||
sudo systemctl enable ai-gpt-scheduler
|
||||
sudo systemctl start ai-gpt-scheduler
|
||||
```
|
||||
|
||||
### tmux/screenでバックグラウンド実行
|
||||
|
||||
```bash
|
||||
# tmuxセッションを作成
|
||||
tmux new -s ai-gpt-scheduler
|
||||
|
||||
# スケジューラーを起動
|
||||
ai-gpt schedule run
|
||||
|
||||
# セッションから離脱 (Ctrl+B, D)
|
||||
```
|
||||
|
||||
## トラブルシューティング
|
||||
|
||||
### タスクが実行されない
|
||||
|
||||
1. スケジューラーが起動しているか確認
|
||||
2. タスクが有効になっているか確認:`ai-gpt schedule list`
|
||||
3. ログを確認(将来実装予定)
|
||||
|
||||
### 重複実行を防ぐ
|
||||
|
||||
同じタスクタイプを複数回追加しないよう注意してください。必要に応じて古いタスクを削除してから新しいタスクを追加します。
|
Reference in New Issue
Block a user