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

103 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 字短摘要。