Files
mnote/wolai-backend/app/workers/tasks.py
T
2026-04-13 19:21:42 +08:00

52 lines
1.5 KiB
Python

from __future__ import annotations
from typing import Dict
from celery import shared_task
from app.services.supabase_rest import supabase_rest
@shared_task(name="app.workers.tasks.ocr_pipeline")
def ocr_pipeline(task_id: str, document_id: str, file_url: str, user_id: str) -> Dict[str, str]:
"""
阶段 0 Celery 任务:模拟 OCR,向 documents+background_tasks 回写占位结果。
阶段 1 将在此处串联 MinerU OCR 与 LightRAG 索引。
"""
supabase_rest.update("background_tasks", {"id": task_id}, {"status": "processing", "progress": 30})
markdown = f"# OCR 结果占位\\n\\n文件地址:{file_url}\\n\\n> 阶段 1 将替换为 MinerU 输出。"
supabase_rest.update(
"documents",
{"id": document_id, "user_id": user_id},
{
"content": {
"blocks": [
{
"type": "paragraph",
"text": markdown,
}
]
},
"raw_text": markdown,
"index_status": "completed",
},
)
supabase_rest.update(
"background_tasks",
{"id": task_id},
{
"status": "completed",
"progress": 100,
"message": "OCR 模拟完成",
},
)
return {
"task_id": task_id,
"document_id": document_id,
"file_url": file_url,
"status": "completed",
}