操作
バグ #409
未完了Phase 4: conversations.json大容量インポート + 新content配列完全対応
ステータス:
進行中
優先度:
高め
担当者:
-
開始日:
2025-06-09
期日:
進捗率:
0%
予定工数:
説明
🎯 目的¶
チケット407・408完了を受けて、Claude会話データ(conversations.json)の新content配列形式完全対応インポート機能を実装
📋 前提条件¶
- ✅ チケット407: Node.js APIサーバー実装完了
- ✅ チケット408: projects.json (33件) インポート完了
- ✅ PostgreSQL conversationsテーブル存在
- ✅ DatabaseService実装済み
🔧 実装内容¶
Phase 4.1: 大容量ファイル対応強化¶
ContentProcessor拡張¶
-
ファイル:
/node-api/src/services/contentProcessor.ts
-
対応形式: Claude新content配列形式
- type: "text", "code", "artifact", "image", "file"
- メタデータ抽出: timestamp, citations, attachments
- 大容量対応: 466MB conversations.jsonの効率処理
ストリーミング処理実装¶
- ファイル分割: 大容量JSONファイルの段階的読み込み
- メモリ効率: Node.js Streams活用
- プログレス表示: リアルタイム進捗表示
Phase 4.2: API拡張実装¶
新エンドポイント追加¶
- POST /api/v2/conversations/import-bulk: バルクインポート
- GET /api/v2/conversations/import/status: インポート進捗確認
- POST /api/v2/conversations/validate: ファイル形式検証
エラーハンドリング強化¶
- 重複会話検証: claude_conversation_id重複チェック
- データ整合性: content配列形式検証
- 失敗時復旧: 部分インポート対応
Phase 4.3: React Frontend統合¶
ImportPage強化¶
-
ファイル:
/react-app/src/pages/ImportPage.tsx
-
機能追加:
- 大容量ファイルアップロード対応
- プログレスバー表示
- エラー詳細表示
- インポート結果サマリー
プロジェクト連携UI¶
- プロジェクト選択: ドロップダウンでプロジェクト指定
- 会話↔プロジェクト紐づけ: インポート時の自動関連付け
- 統計ダッシュボード: インポート後の統計表示
📊 対象データ¶
- ファイル: conversations.json (466MB)
- 推定データ量: 数千件のClaude会話
- 新形式: content配列形式 (text/code/artifact等)
🎯 成功指標¶
- 466MB conversations.jsonの完全インポート成功
- 新content配列形式の完全解析動作
- プロジェクト↔会話の正常紐づけ
- WebUIでの検索・表示確認
- インポート時間 < 10分
⚠️ 技術要件¶
- Node.js: Stream処理・非同期処理活用
- PostgreSQL: バッチ挿入最適化
- React: プログレッシブUI実装
- エラー処理: 堅牢なエラーハンドリング
📚 参考資料¶
- チケット407: Node.js APIサーバー基盤
- チケット408: projects.json インポート実績
- Claude新content配列仕様書
🔗 関連チケット¶
操作