总结服务是PrivateGPT的核心组件,提供文档总结功能。它允许用户生成文本的简洁摘要,这些文本可以直接提供,也可以来自先前摄取的文档。此服务被实现为一个“配方”——一个预定义的用例,帮助用户使用PrivateGPT解决特定任务。
本文档涵盖了总结服务的架构、实现和使用。有关摄取或聊天等其他服务的信息,请参阅摄取服务和聊天服务。
总结服务构建在PrivateGPT核心组件之上,利用检索增强生成(RAG)管道提供上下文感知的总结能力。
来源:private_gpt/server/recipes/summarize/summarize_service.py34-172 private_gpt/ui/ui.py24-25 private_gpt/server/recipes/summarize/summarize_router.py12-86
SummarizeService 类是总结功能的核心实现。
该服务使用LlamaIndex的SummaryIndex和树状总结技术来生成文档的全面摘要。它支持标准响应和流式响应。
关键功能:
ContextFilter参数根据文档ID过滤文档。来源:private_gpt/server/recipes/summarize/summarize_service.py34-172
如果未提供自定义提示,则服务将使用默认提示。
Provide a comprehensive summary of the provided context information.
The summary should cover all the key points and main ideas presented in
the original text, while also condensing the information into a concise
and easy-to-understand format. Please ensure that the summary includes
relevant details and examples that support the main ideas, while avoiding
any unnecessary information or repetition.
来源:private_gpt/server/recipes/summarize/summarize_service.py24-31
该服务通过FastAPI公开了一个/v1/summarize端点。
该端点接受一个SummarizeBody对象,该对象包含以下参数:
text:要总结的可选文本。use_context:一个布尔值,用于确定是否应使用摄取的文档。context_filter:一个可选过滤器,用于指定要使用的文档。prompt:用于总结的可选自定义提示。instructions:用于指导摘要生成的可选指令。stream:一个布尔值,用于启用流式响应。来源:private_gpt/server/recipes/summarize/summarize_router.py12-86
总结服务已集成到PrivateGPT UI中,作为用户可以选择的模式之一。
UI允许用户:
来源:private_gpt/ui/ui.py40-44 private_gpt/ui/ui.py215-233 private_gpt/ui/ui.py246-250
下图说明了从API或UI到最终响应的完整总结请求流程。
来源:private_gpt/server/recipes/summarize/summarize_service.py69-138 private_gpt/server/recipes/summarize/summarize_router.py35-86
要通过API使用总结服务:
总结文本:向/v1/summarize提交一个带有文本的POST请求。
总结摄取的文档:使用来自摄取文档的上下文。
来源:private_gpt/server/recipes/summarize/summarize_router.py15-21 fern/openapi/openapi.json342-382
在UI中:
来源:private_gpt/ui/ui.py215-233 private_gpt/ui/ui.py40-44
总结服务可以通过PrivateGPT的设置系统进行配置。相关设置包括:
| 设置 | 描述 | 默认 |
|---|---|---|
summarize.use_async | 是否对总结使用异步执行。 | 可变 |
ui.default_summarization_system_prompt | UI总结模式下使用的默认提示。 | 自定义提示 |
来源:private_gpt/server/recipes/summarize/summarize_service.py124-126 private_gpt/ui/ui.py246-250
总结服务已与PrivateGPT的其他组件完全集成。
来源:private_gpt/ui/ui.py23-26 private_gpt/ui/ui.py88-95
总结服务为PrivateGPT提供了强大的文档总结能力,利用LLM和检索组件生成全面的摘要。它支持直接文本输入和摄取的文档总结,并可通过指令和提示进行自定义。该服务可通过API和UI接口访问,并支持流式响应以改善用户体验。