# 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//extracted/selected.extracted.json \ --selected-ids \ --output-dir /tmp/article-summary-test 验证输出 markdown 包含「核心结论」「主要论点」「关键方法」等新字段,不再是 140 字短摘要。