文档检索计算代理

基于RAG和MCP技术的智能代理,支持文档检索和简单计算功能,适用于信息查询和处理场景。

  • by Dxsh7126
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 Dxsh7126/mcp-rag-system

使用说明

MCP驱动的RAG代理

这是一个使用多种工具(如search_docs和计算器工具)的项目,它可以在提供的任何文档中查找信息并进行简单的计算。

我建造了什么

  • 该系统是一个代理,负责回答所提供文档中的查询。

  • 它使用RAG(检索增强生成)并使用MCP的概念。创建了一个服务器,其中保存了工具,客户端根据用户请求的查询访问这些工具。

  • 使用的技术是,

  • python

  • 格罗克

  • 单核细胞趋化蛋白

  • 检索增强生成

  • JSON

  • LLM

  • 应用程序编程接口

建筑

  • [mcp_server.py]是mcp的服务器,它包含客户端使用的不同工具。它包含分块逻辑,将文档分块为更小的部分,以便更容易、更快地处理。创建了两个工具,search_docs和calculator,客户端可以访问这些工具。
  • [mcp_client.py]是mcp的客户端,它运行mcp服务器。开发人员配置要连接的服务器,代理从服务器上看到哪些工具可供其使用。它要求每个配置的服务器列出工具。返回完整的工具列表,使用任务所需的工具,并返回最终输出。

客户端和服务器之间对话如何工作的架构。

┌─────────────────┐          ┌─────────────────┐
│     CLIENT      │          │      Server     │
│  (your agent)   │          │  (tool provider)│
│                 │  connect │                 │
│  1. Connect ────┼─────────►│                 │
│                 │          │                 │
│  2. "What tools │  list    │                 │
│     do you      │◄─────────┤  search_docs    │
│     have?"      │          │  calculator     │
│                 │          │                 │
│  3. User asks   │  call    │                 │
│     question    │─────────►│  runs tool      │
│                 │  result  │                 │
│  4. Get result  │◄─────────┤  returns answer │
└─────────────────┘          └─────────────────┘

使用的关键概念

用于创建此项目的关键概念如下,

  • 检索增强生成(RAG)
  • 矢量嵌入和ChromaDB
  • 重叠文档分块
  • AI代理循环(思考→ Act → 观察)
  • LLM函数调用/工具使用
  • 模型上下文协议(MCP)

设置

  1. 克隆仓库
  2. 安装依赖项: pip install -r requirements.txt
  3. 创建一个 .env 与您的文件 GROQ_API_KEY
  4. 运行: python mcp_client.py

示例

Enter query: What are the disadvantages of Three tier architecture?

The disadvantages of Three-tier architecture are:

1. Increased complexity
2. Complexity to manage
3. Security challenges
4. Point of failure