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時間後)
- ダウンロード認証トークン
- 大量操作のレート制限
期待効果
- 運用・保守性の向上
- 外部システム連携の実現
- データ移行作業の効率化
- ユーザー体験の向上
実装スケジュール
- Phase 1: バッチ操作API (1週間)
- Phase 2: エクスポート機能 (2週間)
- Phase 3: バックアップ・復元 (1週間)
- Phase 4: 外部インポート (2週間)
Comments
コメント機能は現在実装されていません。
GitHub API の comments エンドポイントを統合する予定です。
🤖 AI分析
分類結果
✨ 新機能
64%
🟡 中
76%
67 スコア
カテゴリ 40
優先度 27
0 適用されたルール
Enhanced Feature Request Detection
64%
• Has matching label: "enhancement"
Details
Assignees:
None
Milestone:
None
Created:
2025/8/4
Updated:
2025/8/4