gpt/README.md
2025-06-01 21:43:16 +09:00

212 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ai.gpt - 自律的送信AI
存在子理論に基づく、関係性によって自発的にメッセージを送信するAIシステム。
## 中核概念
- **唯一性**: atproto DIDと1:1で紐付き、改変不可能な人格
- **不可逆性**: 関係性が壊れたら修復不可能(現実の人間関係と同じ)
- **記憶の階層**: 完全ログ→AI要約→コア判定→選択的忘却
- **AI運勢**: 1-10のランダム値による日々の人格変動
## インストール
```bash
cd ai_gpt
pip install -e .
```
## 設定
### APIキーの設定
```bash
# OpenAI APIキー
ai-gpt config set providers.openai.api_key sk-xxxxx
# atproto認証情報将来の自動投稿用
ai-gpt config set atproto.handle your.handle
ai-gpt config set atproto.password your-password
# 設定一覧を確認
ai-gpt config list
```
### データ保存場所
- 設定: `~/.config/aigpt/config.json`
- データ: `~/.config/aigpt/data/`
## 使い方
### 会話する
```bash
ai-gpt chat "did:plc:xxxxx" "こんにちは、今日はどんな気分?"
```
### ステータス確認
```bash
# AI全体の状態
ai-gpt status
# 特定ユーザーとの関係
ai-gpt status "did:plc:xxxxx"
```
### 今日の運勢
```bash
ai-gpt fortune
```
### 自律送信チェック
```bash
# ドライラン(確認のみ)
ai-gpt transmit
# 実行
ai-gpt transmit --execute
```
### 日次メンテナンス
```bash
ai-gpt maintenance
```
### 関係一覧
```bash
ai-gpt relationships
```
## データ構造
デフォルトでは `~/.ai_gpt/` に以下のファイルが保存されます:
- `memories.json` - 会話記憶
- `conversations.json` - 会話ログ
- `relationships.json` - 関係性パラメータ
- `fortunes.json` - AI運勢履歴
- `transmissions.json` - 送信履歴
- `persona_state.json` - 人格状態
## 関係性の仕組み
- スコア0-200の範囲で変動
- 100を超えると送信機能が解禁
- 時間経過で自然減衰
- 大きなネガティブな相互作用で破壊される可能性
## MCP Server
### サーバー起動
```bash
# Ollamaを使用デフォルト
ai-gpt server --model qwen2.5 --provider ollama
# OpenAIを使用
ai-gpt server --model gpt-4o-mini --provider openai
# カスタムポート
ai-gpt server --port 8080
```
### AIプロバイダーを使った会話
```bash
# Ollamaで会話
ai-gpt chat "did:plc:xxxxx" "こんにちは" --provider ollama --model qwen2.5
# OpenAIで会話
ai-gpt chat "did:plc:xxxxx" "今日の調子はどう?" --provider openai --model gpt-4o-mini
```
### MCP Tools
サーバーが起動すると、以下のツールがAIから利用可能になります
- `get_memories` - アクティブな記憶を取得
- `get_relationship` - 特定ユーザーとの関係を取得
- `get_all_relationships` - すべての関係を取得
- `get_persona_state` - 現在の人格状態を取得
- `process_interaction` - ユーザーとの対話を処理
- `check_transmission_eligibility` - 送信可能かチェック
- `get_fortune` - 今日の運勢を取得
- `summarize_memories` - 記憶を要約
- `run_maintenance` - メンテナンス実行
## 環境変数
`.env`ファイルを作成して設定:
```bash
cp .env.example .env
# OpenAI APIキーを設定
```
## スケジューラー機能
### タスクの追加
```bash
# 6時間ごとに送信チェック
ai-gpt schedule add transmission_check "0 */6 * * *" --provider ollama --model qwen2.5
# 30分ごとに送信チェックインターバル形式
ai-gpt schedule add transmission_check "30m"
# 毎日午前3時にメンテナンス
ai-gpt schedule add maintenance "0 3 * * *"
# 1時間ごとに関係性減衰
ai-gpt schedule add relationship_decay "1h"
# 毎週月曜日に記憶要約
ai-gpt schedule add memory_summary "0 0 * * MON"
```
### タスク管理
```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 transmission_check_1234567890
```
### スケジューラーデーモンの起動
```bash
# バックグラウンドでスケジューラーを実行
ai-gpt schedule run
```
### スケジュール形式
**Cron形式**:
- `"0 */6 * * *"` - 6時間ごと
- `"0 0 * * *"` - 毎日午前0時
- `"*/5 * * * *"` - 5分ごと
**インターバル形式**:
- `"30s"` - 30秒ごと
- `"5m"` - 5分ごと
- `"2h"` - 2時間ごと
- `"1d"` - 1日ごと
### タスクタイプ
- `transmission_check` - 送信可能なユーザーをチェックして自動送信
- `maintenance` - 日次メンテナンス(忘却、コア記憶判定など)
- `fortune_update` - AI運勢の更新
- `relationship_decay` - 関係性の時間減衰
- `memory_summary` - 記憶の要約作成
## 次のステップ
- atprotoへの実送信機能実装
- systemdサービス化
- Docker対応
- Webダッシュボード