本地MCP智能RAG系统

一个隐私优先的本地MCP智能助手原型,实现动态路由用户查询在非结构化知识库(PDF)和结构化数据库(CSV)之间切换,使用本地LLM进行零数据泄露处理。

  • by SagarAbhishek
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 SagarAbhishek/MCP-Agentic-RAG-POC

使用说明

MCP代理RAG POC

隐私优先的本地MCP助理POC。使用Ollama实现代理路由器,在非结构化RAG(PDF)和结构化数据分析(CSV)之间动态切换。具有实时执行流和零数据泄漏的特点。

当地MCP代理RAG(POC)

注重隐私,支持离线 模型上下文协议(MCP) 作为智能企业助理的实现。

该POC展示了 混合检索系统 在一个或多个应用程序之间动态路由用户查询 非结构化知识库 (RAG提供的PDF)和 结构化数据库 (通过Pandas的CSV),使用本地LLM(Ollama)进行零数据泄漏处理。

主要特点

  • 主路由器代理: 自动检测用户在“策略/文档模式”和“客户数据库模式”之间切换的意图
  • 代理RAG(检索增强生成): 使用矢量嵌入(SQLite+Nomic)来回答长PDF文档中的问题。
  • 结构化数据分析: 使用Python/Pandas对CSV文件执行精确的关键字提取和多列模糊搜索(无幻觉SQL)。
  • 实时反馈循环: 后端服务器将分步逻辑日志(思维过程)流式传输到前端客户端,为人工智能的决策提供透明度。
  • 100%本地执行: 使用Ollama(Qwen 2.5+Nomic Embed)完全在本地运行,确保没有数据离开网络。

建筑

graph TD
    User[Client Laptop] -->|Socket Connection| Server[Server Laptop]
    Server --> Router{Master Agent Router}
    
    Router -- "Intent: POLICY" --> ToolPDF[Tool: PDF RAG]
    Router -- "Intent: CUSTOMER" --> ToolCSV[Tool: CSV Analyzer]
    
    ToolPDF -->|Vector Search| VectorDB[(SQLite Vector DB)]
    ToolCSV -->|Pandas Filter| CSVFile[(Customer.csv)]
    
    VectorDB --> Context
    CSVFile --> Context
    
    Context --> LLM[Ollama: Qwen2.5:3b]
    LLM -->|Final Report| User

技术栈

  • 语言: Python 3.x
  • 沟通: Python套接字(TCP/IP)
  • LLM推理: Ollama(当地)
  • 模型:
    • 聊天: qwen2.5:3b (针对指令遵循进行了优化)
    • 嵌入: nomic-embed-text (高性能检索)
  • 数据处理:
    • pandas (CSV处理)
    • pypdf (PDF提取)
    • sqlite3 (矢量存储)
    • numpy (矢量数学)

先决条件

确保 服务器计算机 已安装以下内容:

  1. Python 3.10+
  2. 奥拉玛 (在后台运行)

必需的Python库

在终端中运行以下命令:

pip install ollama pandas pypdf numpy tabulate