Files
reader/prd/article-summary-prompt-independent.md

3.6 KiB
Raw Permalink Blame History

PRD: 单篇文章总结 Prompt 独立化

背景

reader 项目目前有两条 LLM 总结链路:

  1. 日报摘要(freshrss_pipeline.py):生成每日候选日报,输出短摘要卡片,目标是快速筛选
  2. 单篇精读总结(article_summary.py):对精选文章做深度沉淀,上传到知识库

问题:单篇精读总结目前复用了日报摘要的同一份 prompt(outputs/prompts/llm-summary-prompt.txt), 导致即使输入了完整正文(article.plain_text),输出仍然是 2-3 句的短摘要卡片,没有体现正文的深度信息。


目标

让单篇精读总结和日报摘要彻底分离,单篇总结的输出应该像一篇知识沉淀笔记,而不是日报候选摘要。


需求说明

1. 新增 outputs/prompts/article-summary-prompt.txt

新增一个专门用于单篇文章知识沉淀的 prompt 文件,与日报摘要 prompt 完全独立。

prompt 设计目标:

  • 基于正文全文(article.plain_text)做深度总结
  • 允许较长输出(不限制字数,以内容完整为准)
  • 输出结构偏向知识沉淀,而非候选摘要

输出 JSON schema 新增字段:

  • core_conclusion:作者最核心的结论,1-2 句,精准
  • main_argument:文章的主要论点/主张,可展开,允许多句
  • key_methods:关键方法/机制/技术手段,3-6 条,每条一句
  • important_details:值得记录的细节、数据、案例,3-6 条,每条一句
  • reusable_insights:可复用于其他场景的启发或观点,2-4 条
  • keywords:具体实体、工具名、方法名,5-8 个
  • topics:更高层的主题标签,3-5 个
  • category:内容分类(资讯/方法论/工具实践/观点评论)
  • worth_keeping:是否值得长期保留,bool
  • reason:沉淀理由,一句话

2. 修改 src/summary_mcp/workflows/article_summary.py

改动 1:默认 prompt 路径 修改前:DEFAULT_PROMPT_PATH = OUTPUT_ROOT / "prompts" / "llm-summary-prompt.txt" 修改后:DEFAULT_PROMPT_PATH = OUTPUT_ROOT / "prompts" / "article-summary-prompt.txt"

改动 2:Markdown 输出结构 summarize_selected_articles() 中 lines 构造部分,从 summary/highlights 字段改为新 schema 字段。

新输出格式:

标题

Source: url Category: 方法论

核心结论

主要论点

关键方法 / 机制

重要细节

可复用启发

关键词

主题

3. Validator 处理

src/summary_mcp/validators/llm_result.py 目前按日报摘要 schema 校验,与新 schema 不兼容。

推荐方案:article_summary.py 调用 run_loop_payload() 时传入宽松 validator,只校验 JSON 格式合法,不校验具体字段。 备选方案:新增 validate_article_summary_payload() 专门校验新 schema。


文件变更清单

文件 操作
outputs/prompts/article-summary-prompt.txt 新增
src/summary_mcp/workflows/article_summary.py 修改 prompt 路径 + 修改 markdown 输出结构
src/summary_mcp/validators/llm_result.py 按需修改

不影响的部分

  • freshrss_pipeline.py 不变,日报摘要链路保持原有 prompt 和 schema
  • summary_loop.py 核心逻辑不变
  • extracted JSON 格式不变,article.plain_text 仍然是输入

验证方式

用已有 extracted 数据跑一次单篇总结:

cd /home/ubuntu/zhu/github/reader python -m summary_mcp.workflows.article_summary
--extracted outputs/freshrss/rerun/<run_id>/extracted/selected.extracted.json
--selected-ids <item_id>
--output-dir /tmp/article-summary-test

验证输出 markdown 包含「核心结论」「主要论点」「关键方法」等新字段,不再是 140 字短摘要。