基于agent-service-toolkit构建RAG智能助手指南
2025-07-10 01:32:07作者:裴麒琰
什么是RAG助手
RAG(Retrieval-Augmented Generation)是一种结合信息检索与文本生成的技术,能够从知识库中检索相关信息并生成智能回复。在agent-service-toolkit项目中,我们可以利用Chroma数据库快速构建一个专业的RAG助手。
准备工作
在开始构建RAG助手前,需要准备以下环境:
- Python 3.7或更高版本
- 已安装项目依赖包
- 准备知识库文档(支持Word和PDF格式)
构建知识库
1. 准备数据文件
将所有需要导入知识库的文档放入一个文件夹,例如./data
。建议按主题分类存放文档,便于后续管理。
2. 配置数据库参数
编辑create_chroma_db.py
脚本,主要配置以下参数:
folder_path = "./data" # 文档所在路径
db_name = "chroma_db" # 数据库名称
chunk_size = 1000 # 文本分块大小
chunk_overlap = 200 # 分块重叠大小
参数说明:
chunk_size
:控制每个文本块的大小,影响检索精度chunk_overlap
:设置分块间的重叠内容,保持上下文连贯性
3. 生成数据库
运行以下命令创建Chroma数据库:
python scripts/create_chroma_db.py
成功执行后,会在项目根目录生成Chroma数据库文件。
配置RAG助手
1. 设置数据库连接
在tools.py
文件中配置数据库路径:
persist_directory = "chroma_db" # 与之前创建的数据库名称一致
top_k = 5 # 返回的最相关文档数量
2. 自定义助手功能
修改database_search_func
函数描述,准确说明数据库内容和用途:
@tool(description="Search the company HR knowledge base for policies, benefits and handbook information.")
def database_search_func(query: str) -> str:
3. 定义助手角色
在rag_assistant.py
中设置助手的行为准则:
instructions = f"""
您是一个专业的HR助手,可以访问公司政策、福利和员工手册数据库。
当前日期是{current_date}。
重要注意事项:
- 回答前请从多个来源收集信息
- 在回复中注明信息来源
- 使用友好而专业的语气
- 仅使用数据库中的信息,不使用外部来源
"""
4. 设置用户界面
在streamlit_app.py
中自定义欢迎语:
WELCOME = """您好!我是AI人力资源助手,可以解答公司政策、员工手册和福利相关问题。请问有什么可以帮您?"""
运行与测试
完成配置后,启动应用即可与RAG助手交互。测试时建议:
- 尝试不同类型的问题,验证检索准确性
- 检查回复是否包含正确来源
- 评估分块大小是否合适,必要时调整参数
高级优化建议
- 数据预处理:导入前清理文档格式,确保内容质量
- 分块策略:根据文档类型调整分块大小,技术文档可能需要更大块
- 检索优化:尝试不同embedding模型,提高检索相关性
- 回复模板:设计标准回复格式,提升用户体验
通过以上步骤,您可以在agent-service-toolkit框架上快速构建一个专业领域的RAG助手,根据实际需求灵活调整配置参数。