多代理RAG系统

一个实验性的多代理检索增强生成(RAG)系统,通过FastAPI服务与模型上下文协议(MCP)工具协调工作,预处理本地知识库并提供聊天API。

  • by eyalami
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 eyalami/MultiAgent_RAG_MCP

使用说明

多代理RAG MCP

该存储库托管了一个实验性的多代理检索增强生成(RAG)系统,该系统将FastAPI服务与模型上下文协议(MCP)工具协调起来。它预处理本地知识库,启动MCP客户端,并提供聊天API,将作业委派给多个代理。

先决条件

  • Tavilly API密钥(TAVILY_API_KEY)可以访问MCP-Tavily代理
  • OPENAI API密钥

本地设置

  1. 克隆存储库

    git clone https://github.com/<your-org>/MultiAgent_RAG_MCP.git
    cd MultiAgent_RAG_MCP
    
  2. 复制.env.exampe到.envt

    copy .env.example .env  
    

    必需:edit.env设置您自己的API密钥 可选:设置其他参数,例如MAX_CHARACTERS

运行堆栈

Docker Compose

  1. 塑造形象

    docker compose build
    
  2. 运行容器

    docker compose up -d
    

容器在构建阶段下载嵌入模型,并在端口上公开FastAPI服务 80 (如上所示 8000 在主机上)。 第一次构建可能需要很长时间(甚至失败),具体取决于您的机器资源

项目结构

  • src/agents/:多代理编排逻辑(manager_agent, kb_agent, mcp_agent)
  • src/api/:FastAPI路由和请求/响应模式
  • data/:承载知识库和缓存嵌入的文件夹
  • Dockerfile / docker-compose.yml:容器化和编排设置

故障排除

  • 缺少模型文件 –删除 data/cache/ 并重新运行预处理以刷新嵌入。
  • MCP代理无法连接 –确认 TAVILY_API_KEY 有效,且该端口 4000 是免费的。
  • 端口80的权限被拒绝 –在更高的端口上运行服务器,或以提升的权限执行脚本。
  • 首次构建失败或需要很长时间 –设置docker资源,分配更多

文档

  • architecture/:记录设计考虑因素和决策的文件夹
  • examples/:包含用法示例jpeg的文件夹