Files
PlantAI-rag-new/tests/paper/manual_acceptance.md
T
admin 91f6a1c242 feat: 新增论文撰写功能 paper-writer(独立 MCP 服务 + BFF 大脑 + 前端三卡)
- paper_writer_service(8097):FastAPI + MCP streamable-http 单端点,9 工具
  (propose_paper_outline/write_paper_section/get_paper_progress/search_refs/
  revise_paper_section/revise_paper/get_paper/complete_paper/cancel_paper),
  SQLite 三表(papers/paper_sections/citations,WAL),GB/T 7714 引用协议
- BFF:services/paper/{mcp_client,agent}.py(裸 JSON-RPC 客户端 + 规则状态机)、
  routers/paper.py、schemas.py 4 个 Paper*Block + ArtifactBlock 加 paper_id/citation_count、
  config.py 开关、main.py 条件注册、docgen.py 抽 insert_artifact 公共 helper
- 前端:intent.js paperIntent 纯函数、Composer docgen 分支 sub-route、sendPaper/轮询、
  PaperBriefCard/PaperOutlineCard/PaperProgressCard、DocPane cite-chip
- deploy/paper_restart.sh + toggle_paper.sh;compile_sdk.sh 白名单追加 paper 文件
- tests/paper 26 条(工具逻辑 + MCP 协议 + BFF 状态机 + 块 schema + 前端 intent 单测)
2026-09-30 22:29:22 +08:00

2.3 KiB
Raw Blame History

论文撰写功能 手工验收手册

前置(175 服务器,dev 树明文)

  • paper_writer_service 8097 已拉起(bash deploy/paper_restart.sh)。
  • BFF 8090 已启用论文路由(bash deploy/toggle_paper.sh on,即 .env 里 PAPER_WRITER_ENABLED=true)。
  • 前端 Vite dev(5180)或 BFF 静态托管 dist 就绪,Mac 侧走 SSH 隧道访问。

探活自检:

curl -s http://127.0.0.1:8097/health                     # {"ok":true,...,"db":{"connected":true}}
curl -s http://127.0.0.1:8090/api/paper/health            # 应透传 8097 /health
curl -s http://127.0.0.1:8090/api/paper/papers/nope       # {"ok":false,...,"code":"NOT_FOUND"}(路由已注册)

验收剧本(10 步)

  1. 触发:输入「帮我写一篇水稻 SPL 基因家族的综述论文」→ 出现 NL 引导 + paper_brief 表单卡(预填已抽取字段,缺失项待补)。
  2. 补全 brief:类型=综述 / 篇幅=5000字 / 语言=中文 / 格式=GB/T 7714 → 点「生成大纲」→ 出现 paper_outline 大纲卡(5-6 节)。
  3. NL 改大纲:输入「把展望合并到讨论」→ 系统复述确认并更新大纲卡。
  4. 确认:点「确认并开始撰写」→ 出现 paper_progress 进度卡,逐节推进,每节完成有 NL 小结。
  5. 完成:全部节完成后自动挂 artifact 块并切右侧「文档」TAB;全文含文末 GB/T 7714 参考文献列表 + 降级 disclaimer(无 DOI/PMID 的知识库资料)。
  6. 引用点击:点击正文 [3] → popover 显示标题 / GB 文本 / 来源片段。
  7. 修改:输入「把讨论部分第二段改得更严谨」→ 修改确认,文献编号已重排。
  8. 导出:文档 TAB 点「导出 PDF」/「导出 DOCX」→ 成功下载。
  9. 关服务降级:bash deploy/paper_restart.sh 停掉后(或 kill 8097)→ 前端触发词落 docgen 单发(无 paper 入口)。
  10. 恢复续写:重启 paper 服务 + BFF 后 resume → 跳过已完成节继续。

备注

  • 引用为知识库(vstore 8094)自动检索注入;知识库 chunk 无 DOI/PMID 元数据,故多为降级格式 + disclaimer(见方案 §3.3)。
  • 长文一致性:citations 全局只增不改,complete 按首次出现顺序重排编号;正文与文末列表同源生成。