操作
バグ #400
未完了新content形式対応APIインポート機能実装
ステータス:
進行中
優先度:
急いで
担当者:
-
開始日:
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 さんが12日前に更新
- ステータス を 新規 から 進行中 に変更
🔍 実装状況確認 (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: 🔴 大容量ストリーミング (重複エラーで停止)
🎯 このチケットの評価¶
基本機能実装は完了しており、重複処理ロジックの追加が必要な状況です。
🔄 次のアクション¶
- チケット#413で重複キー問題解決
- 完全インポートテスト実行
- ステータスを「解決」に更新予定
操作