Deepwriter
本章节详细介绍了 HRAG 系统中的 Deepwriter 组件。
Deepwriter 是一个基于大语言模型(LLM)和向量数据库的自动报告生成工具。它从非结构化文档中提取语义信息,通过用户提供的查询,自动撰写结构化文本报告。
使用说明
输入参数
你可以通过命令行参数或直接在代码中设置以下参数:
–output_path:报告输出路径(必填)
–query:用户查询文本,用于驱动报告生成(必填)
–host:Milvus 服务器地址(默认:localhost)
–port:Milvus 端口(默认:19530)
–user:Milvus 用户名(默认:空)
–password:Milvus 密码(默认:空)
–embedding_model:嵌入模型名称(默认:Alibaba GME)
–llm:用于生成报告的语言模型(默认:ollama/qwen2:7b)
–base_url:LLM 服务的基础 URL(默认:None)
组件结构
MilvusDB:用于管理图文向量数据的检索和存储。
DocFinder:通过向量检索获取上下文信息,支持语义相似度排序。
DeepWriter:结合 LLM,根据用户查询和检索到的上下文信息生成结构化报告。
ReportProcessor:对生成报告进行后处理,并保存为 Markdown 格式。
日志系统:使用 loguru 记录流程信息,默认日志输出至 logs/report_generation_demo.log。
使用示例
你可以通过调用 tests/deepwriter/test_deepwriter.py 中的主函数 main() 来生成报告,示例代码如下:
if __name__ == "__main__":
query = "What is the total trade volume of the world in 2024?"
main(query)
报告将保存至 output/ 目录下,文件名为 report.md。如已有同名文件,将自动添加编号后缀以避免覆盖。
输出结果
生成内容包括:
报告正文:Markdown 格式文件 report.md
报告元信息:metadata.json,包含查询语句、使用模型、报告路径等信息
日志文件
日志记录默认输出到:
logs/report_generation_demo.log
可用于问题排查和流程追踪。
注意事项
当前仅支持基于 GME 的嵌入模型。
LLM 服务必须支持 RESTful API 接口。
多模态嵌入模型和文本嵌入模型应保持一致配置。
文档数据库需提前构建并包含有效数据。