首页
/ 基于agent-service-toolkit构建RAG智能助手指南

基于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助手交互。测试时建议:

  1. 尝试不同类型的问题,验证检索准确性
  2. 检查回复是否包含正确来源
  3. 评估分块大小是否合适,必要时调整参数

高级优化建议

  1. 数据预处理:导入前清理文档格式,确保内容质量
  2. 分块策略:根据文档类型调整分块大小,技术文档可能需要更大块
  3. 检索优化:尝试不同embedding模型,提高检索相关性
  4. 回复模板:设计标准回复格式,提升用户体验

通过以上步骤,您可以在agent-service-toolkit框架上快速构建一个专业领域的RAG助手,根据实际需求灵活调整配置参数。