Issue #136: 新機能: バッチ処理・エクスポート機能の実装

Opened 2025/8/4 by @nyasuto Open
enhancement

Description

概要

大量メモリデータの一括処理、エクスポート、バックアップ機能の実装

背景

  • 現在は個別メモリの操作が中心
  • データ移行・バックアップ機能が不足
  • 外部システム連携の需要増加

提案機能

1. バッチ操作API

# 一括更新・削除
POST /api/memories/batch
{
  "operations": [
    {"type": "update", "id": "mem_001", "tags": ["new_tag"]},
    {"type": "delete", "id": "mem_002"},
    {"type": "reprocess", "id": "mem_003"}  # AI再処理
  ]
}

2. エクスポート機能

# 多形式エクスポート
GET /api/export?format=json&date_from=2025-01-01
GET /api/export?format=markdown&tags=["AI","開発"]
GET /api/export?format=obsidian&vault_ready=true

対応形式:

  • JSON (標準API形式)
  • Markdown (人間可読形式)
  • CSV (分析用)
  • Obsidian (ナレッジベース統合)

3. バックアップ・復元

# フルバックアップ
POST /api/backup/create
{
  "include_embeddings": true,
  "compression": "gzip",
  "encryption": false
}

# 復元
POST /api/backup/restore
{
  "backup_file": "mory_backup_20250804.json.gz",
  "merge_strategy": "overwrite"  # overwrite/merge/skip
}

4. データ移行支援

# 外部データインポート
POST /api/import/obsidian
POST /api/import/notion  
POST /api/import/evernote

技術実装

バックグラウンド処理

# Celery/Redis 統合
from celery import Celery

@celery.task
def bulk_reprocess_memories(memory_ids: List[str]):
    """大量メモリの再処理タスク"""
    pass

@celery.task  
def generate_export(user_params: dict):
    """エクスポートファイル生成"""
    pass

ストリーミング API

# 大量データ対応
@router.get("/export/stream")
async def stream_export(format: str):
    """ストリーミングエクスポート"""
    def generate_data():
        for memory in get_memories_batch():
            yield format_data(memory, format)
    
    return StreamingResponse(generate_data())

進捗トラッキング

# タスク状況API
GET /api/tasks/{task_id}/status
{
  "status": "running",  # pending/running/completed/failed
  "progress": 45,       # 0-100%
  "eta_seconds": 120,
  "result_url": "/downloads/export_xyz.json"
}

データベース拡張

-- タスク管理テーブル
CREATE TABLE async_tasks (
    id TEXT PRIMARY KEY,
    task_type TEXT NOT NULL,  -- export/import/batch_update
    status TEXT NOT NULL,     -- pending/running/completed/failed
    progress INTEGER DEFAULT 0,
    parameters JSON,
    result_data JSON,
    created_at DATETIME,
    completed_at DATETIME
);

セキュリティ考慮

  • エクスポートファイルの自動削除 (24時間後)
  • ダウンロード認証トークン
  • 大量操作のレート制限

期待効果

  • 運用・保守性の向上
  • 外部システム連携の実現
  • データ移行作業の効率化
  • ユーザー体験の向上

実装スケジュール

  1. Phase 1: バッチ操作API (1週間)
  2. Phase 2: エクスポート機能 (2週間)
  3. Phase 3: バックアップ・復元 (1週間)
  4. Phase 4: 外部インポート (2週間)

Comments

コメント機能は現在実装されていません。
GitHub API の comments エンドポイントを統合する予定です。

🤖 AI分析

分類結果

✨ 新機能
🟡 中
67 スコア
カテゴリ 40
優先度 27
0

適用されたルール

Enhanced Feature Request Detection
• Has matching label: "enhancement"

Details

Assignees:

None

Milestone:

None

Created:

2025/8/4

Updated:

2025/8/4