# 通用问答-文档总结-Summarize ## 适用场景 当 query 包含“总结一下、概括、提炼、分析这个、这篇文章、这个网页、这个文档、屏幕上的内容”等表达时,容易在 `文档总结`、`Summarize()`、`QA()`、`文本创作`、`图片问答` 之间混淆。 ## 候选集合 - `文档总结`:旧 tag 或 Agent 包装候选。 - `Summarize()`:function program,适合已经确认有文档、URL 或资源对象时。 - `QA()`:泛知识问答,没有可总结资源,或用户问的是开放知识。 - `文本创作` / `Generate(object=Text)`:用户不是要求总结已有内容,而是要求生成新文本、评论、文案、文章。 - `VisionQA()`:用户问题依赖图片、屏幕、拍照或视觉指代,且不是明确文档/URL 总结。 ## 决策顺序 1. 先判断是否存在可总结资源: - 明确文档、网页、URL、附件、屏幕文章、图片形式的文档。 - 多轮上下文里上一轮刚上传或打开了资源。 2. 如果有资源,再判断资源类型: - 文档:`x0=Resource(type="DOC")` + `Summarize(object=x0)`。 - URL/网页:`x0=Resource(type="URL")` + `Summarize(object=x0)`。 - 未知资源但明确“总结一下”:可以使用 `Summarize()`,并在结果中标注资源待系统补全。 3. 如果没有资源,只是问知识: - “总结一下红楼梦”:通常是 `QA()`,不是文档总结。 - “介绍一下孔乙己”:通常是 `QA()`。 4. 如果用户要求基于已有内容生成新文本: - “根据这篇文章写一段评论”:需要区分任务是否要求总结,还是创作。可以先总结资源,再进入文本创作,但最终 target 需按当前任务定义确认。 5. 如果 query 依赖视觉内容: - “屏幕上这段话是什么意思”:如果屏幕内容是文档/文章,偏 `Summarize()`;如果是图片、图标、题目或视觉指代,偏 `VisionQA()`。 ## 正例 | query | 推荐 | | --- | --- | | 总结一下这个文档 | `x0=Resource(type="DOC")` + `Summarize(object=x0)` | | 这个网页讲了什么 | `x0=Resource(type="URL")` + `Summarize(object=x0)` | | 总结一下 | `Summarize()`,资源由上下文或系统补全 | | 总结一下这篇论文的核心观点 | `Summarize()`,如果已知是文档则补 `Resource(type="DOC")` | ## 反例 | query | 不应给 | 推荐 | | --- | --- | --- | | 总结一下红楼梦 | `Summarize()` | `QA()` | | 孔乙己这篇文章主要讲什么 | 无上下文资源时不要强行文档总结 | `QA()` | | 写一段关于这篇文章的朋友圈文案 | 单纯 `Summarize()` | 需要确认是否文本创作,或先总结再生成 | | 这个图标是什么意思 | `Summarize()` | `VisionQA()` 或图片问答 | ## 输出建议 - 如果当前任务使用 function program,优先输出 `Summarize()` 或 object + `Summarize(object=x0)`。 - 如果当前任务仍使用旧 tag,使用 `Agent(tag="文档总结")` 前必须确认这批数据要求 Agent 包装。 - 如果只是“总结一下某个知识实体”,不要因为出现“总结”两个字就给 `Summarize()`。 ## 仍需确认 - 资源是否真实存在,还是用户只是问一个知识实体。 - 当前数据集 target 要求是 function program、intent,还是 `Agent(tag="xxx")`。