プロジェクト

全般

プロフィール

バグ #400

未完了

新content形式対応APIインポート機能実装

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

ステータス:
進行中
優先度:
急いで
担当者:
-
開始日:
2025-06-09
期日:
進捗率:

0%

予定工数:

説明

🎯 目的

Claude会話エクスポートの新content形式に対応したAPIインポート機能実装

📋 実装要件

1. content配列形式対応

"content": [
  {
    "type": "text|code|artifact",
    "text": "実際の内容", 
    "start_timestamp": "開始時刻",
    "stop_timestamp": "終了時刻",
    "citations": "引用情報"
  }
]

2. 処理タイプ別ハンドリング

  • テキスト: content[].type = "text"
  • コードブロック: content[].type = "code"
  • アーティファクト: content[].type = "artifact"
  • 添付ファイル: attachments[]/files[] 処理

3. メッセージ統合処理

  • content配列 → 単一テキストへの変換
  • タイムスタンプ情報の保持
  • 引用情報の処理

🔧 技術要件

  • FastAPI endpoint: /api/v2/conversations/import 拡張
  • temp_fix.py モジュール更新
  • エラーハンドリング強化
  • 大容量データ対応(3MB程度)

📊 期待する成果

  • conversations_part_01.json (51会話, 524メッセージ) 完全インポート
  • 新形式・旧形式両対応
  • エラー詳細ログ出力

🎫 親チケット

#399 Claude conversations.json構文解析&分割インポート実装

Redmine Admin さんが11日前に更新

  • ステータス新規 から 進行中 に変更

🔍 実装状況確認 (2025-06-09 15:27)

✅ 完了事項

  • 新content配列形式対応: ContentProcessor 実装完了
  • APIエンドポイント: /api/v2/conversations/import-bulk 実装済み
  • TypeScript実装: Node.js + TypeScript 完全移行完了

🔧 確認済み技術実装

  • content配列処理: ✅ type別ハンドリング (text/code/artifact)
  • メッセージ統合: ✅ content配列 → 単一テキスト変換
  • 大容量対応: ✅ 500MB制限、multer設定済み

🚨 現在の障害

  • 重複キー制約: content_hash の重複でインポート停止
  • 空コンテンツ: 空文字列ハッシュの重複問題

📊 Phase 4実装進捗

  • Phase 4.1: ✅ 新content形式対応 (このチケット)
  • Phase 4.2: ✅ 小容量テスト完了
  • Phase 4.3: 🔴 大容量ストリーミング (重複エラーで停止)

🎯 このチケットの評価

基本機能実装は完了しており、重複処理ロジックの追加が必要な状況です。

🔄 次のアクション

  1. チケット#413で重複キー問題解決
  2. 完全インポートテスト実行
  3. ステータスを「解決」に更新予定

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