プロジェクト

全般

プロフィール

バグ #409

未完了

Phase 4: conversations.json大容量インポート + 新content配列完全対応

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

ステータス:
進行中
優先度:
高め
担当者:
-
開始日:
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配列仕様書

🔗 関連チケット

  • #407 (完了): React+TypeScript新content配列対応インポート機能
  • #408 (完了): projects.json インポート機能実装・テスト

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