プロジェクト

全般

プロフィール

バグ #371

未完了

claude-search API会話管理エンドポイント実装

Redmine Admin さんが13日前に追加. 13日前に更新.

ステータス:
進行中
優先度:
高め
担当者:
-
開始日:
2025-06-08
期日:
進捗率:

0%

予定工数:

説明

概要

claude-search API v2.2 - 会話管理エンドポイント実装

親チケット

#369 claude-search Phase3中期改善

背景

WebUI v2のインポート機能に対応するため、会話の追加・管理APIが必要。
現在は検索のみ可能で、データ追加はSQLで直接実行している状態。

実装内容

1. 会話追加エンドポイント

POST /api/v2/conversations
  • リクエストボディ:
    {
      "title": "会話タイトル",
      "content": "会話内容",
      "claude_conversation_id": "元のID(オプション)",
      "created_at": "2025-06-08T12:00:00Z",
      "tags": ["タグ1", "タグ2"],
      "metadata": {}
    }
    
  • 重複チェック(content_hashで判定)
  • 409 Conflictで重複時エラー

2. 会話一覧エンドポイント

GET /api/v2/conversations?limit=20&offset=0
  • ページネーション対応
  • ソート機能(created_at, updated_at)
  • フィルタリング(tags, date_from, date_to)

3. 会話詳細エンドポイント

GET /api/v2/conversations/{id}
  • UUID指定で詳細取得
  • メッセージ履歴含む

4. 会話更新エンドポイント

PUT /api/v2/conversations/{id}
  • タイトル、タグ更新
  • メタデータ更新

5. 会話削除エンドポイント

DELETE /api/v2/conversations/{id}
  • 論理削除(is_active=false)
  • 物理削除オプション

6. バルクインポート

POST /api/v2/conversations/bulk
  • 複数会話の一括追加
  • トランザクション処理
  • プログレスレポート

技術仕様

  • FastAPI実装
  • Pydanticモデル定義
  • asyncpgでDB操作
  • content_hashはSHA256使用

テスト項目

  • 単体会話追加
  • 重複チェック
  • バルクインポート(100件)
  • エラーハンドリング
  • ページネーション

成功基準

  • WebUI v2からJSONインポート可能
  • 重複データの自動スキップ
  • 1000件/分の処理速度

他の形式にエクスポート: Atom PDF