MCPcopy Create free account
hub / github.com/OpenRaiser/PaperFlow / _finish_reading_task

Function _finish_reading_task

deployments/desktop/shared/agents.py:2673–2750  ·  view source on GitHub ↗
(task_id: str)

Source from the content-addressed store, hash-verified

2671def _reading_language_notice(response_language: str) -> str:
2672 if _normalize_response_language(response_language) == "en":
2673 return "The GUI language is set to English; this reading report will be written in English."
2674 return "GUI 页面当前选择语言为中文;本次精读报告将按中文生成。"
2675
2676
2677def _reading_task_payload(task: Optional[Dict[str, Any]]) -> Optional[Dict[str, Any]]:
2678 if not task:
2679 return None
2680 return {key: value for key, value in task.items() if key not in {"thread", "internal_docs"}}
2681
2682
2683def _finish_reading_task(task_id: str) -> None:
2684 with _READING_TASK_LOCK:
2685 task = _READING_TASKS.get(task_id)
2686 if not task:
2687 return
2688 task["status"] = "running"
2689 task["progress_phase"] = "running"
2690 task["updated_at"] = _task_timestamp()
2691 user_id = str(task.get("user_id") or "")
2692 push_id = str(task.get("push_id") or "")
2693 response_language = str(task.get("response_language") or "zh")
2694 write_feishu = task.get("write_feishu")
2695 selected_numbers = list(task.get("selected_numbers") or [])
2696 docs = list(task.get("internal_docs") or [])
2697 completed_docs: List[Dict[str, Any]] = []
2698 errors: List[str] = []
2699
2700 for index, number in enumerate(selected_numbers):
2701 doc = docs[index] if index < len(docs) else {}
2702 paper = doc.get("paper_raw") or doc.get("paper") or {}
2703 report_path = Path(str(doc.get("report_path") or ""))
2704 try:
2705 with _READING_TASK_LOCK:
2706 task["current_index"] = index + 1
2707 task["progress_phase"] = "reading"
2708 task["updated_at"] = _task_timestamp()
2709 _write_reading_placeholder(
2710 user_id=user_id,
2711 paper=paper,
2712 report_path=report_path,
2713 status="running",
2714 steps=[
2715 "已创建精读报告占位文件。",
2716 _reading_language_notice(response_language),
2717 "正在解析 PDF;如已配置 MinerU,会优先使用 MinerU。",
2718 "正在调用 LLM 生成 Q1-Q7 精读内容。",
2719 ],
2720 response_language=response_language,
2721 )
2722 result = create_reading_reports(
2723 user_id=user_id,
2724 push_id=push_id,
2725 paper_numbers=[number],
2726 write_feishu=write_feishu,
2727 response_language=response_language,
2728 )
2729 result_docs = list(result.get("created_docs") or [])
2730 completed_docs.extend(result_docs)

Callers

nothing calls this directly

Calls 5

_task_timestampFunction · 0.85
_reading_language_noticeFunction · 0.85
create_reading_reportsFunction · 0.85
getMethod · 0.80

Tested by

no test coverage detected