混合RAG系统

一个结合语义向量搜索和模型上下文协议(MCP)风格的外部存储服务的生产级检索增强生成(RAG)系统,用于提供准确、低幻觉的响应。

  • by prateekmishraptma
  • Jupyter Notebook
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 prateekmishraptma/RAG_with_MCP

使用说明

🔍 集成MCP的混合RAG系统

A. 生产风格检索增强生成(RAG) 系统结合 语义向量搜索 带着一个 模型上下文协议(MCP)风格的外部存储服务 以提供准确、低幻觉反应。

该项目演示了现代LLM应用程序如何集成 多个存储源 (向量+符号)使用当前的LangChain可运行API。

🚀 主要特点

  • ✅ 混合RAG架构
    • 基于FAISS的语义检索
    • 基于MCP的符号/长期记忆
  • ✅ 现代LangChain(可运行的API)
    • 用途 .invoke() (没有弃用的方法)
  • ✅ 基于FastAPI的MCP服务器
    • 充当外部确定性知识库
  • ✅ 拥抱面部FLAN-T5发生器
    • 指令调优、CPU友好型
  • ✅ 简洁、模块化、可面试的设计

🧠 系统架构

文本 用户查询 | ├── MCP服务器(符号存储器,确定性) | ├── 矢量检索器(失败+嵌入) | └── 上下文合并 | v FLAN-T5发生器

这种混合方法减少了幻觉,改善了事实基础。

📂 项目结构 . ├── RAG_MCP.ipynb#完整的RAG管道(矢量+MCP+LLM) ├── mcp_server.py#FastAPI mcp内存服务器 ├── README.md#项目文档 ⚙️ 技术栈

Python 3.10+ LangChain(可运行的API) FAISS 拥抱面部变压器 FLAN-T5(谷歌/FLAN-T5-base) 快速API 皮丹提克

🏃‍♂️ 如何运行项目

1.️⃣ 安装依赖 pip安装langchain langchain社区变压器faiss cpu fastapi uvicorn pydantic

2.️⃣ 启动MCP服务器 python mcpserver.py

服务器运行时间: http://127.0.0.1:8000

Swagger用户界面: http://127.0.0.1:8000/docs

3.️⃣ 运行RAG管道 打开并执行: RAG_MCP.ipynb 笔记本: 加载文档 构建FAISS指数 查询MCP内存 合并上下文 使用FLAN-T5生成最终答案

🔌 MCP服务器API 端点 POST/mcp/query 请求 { “query”:“什么是ProjectPro?” } 回应 { “回应”:“ProjectPro是一个提供端到端数据科学和人工智能项目解决方案的平台。” } 🎯 为什么选择MCP+RAG? 组件用途 矢量存储语义相似度搜索 MCP服务器确定性、长期知识 LLM自然语言生成

这反映了生产中使用的真实LLM系统。

🔮 未来的增强功能 基于工具调用的MCP路由 代理RAG(策划人+执行人) 缓存和重试逻辑 多源MCP存储器 流媒体响应

📜 许可证 该项目用于教育和投资组合目的。

🙌 致谢 受现代RAG、MCP概念和LangChain的Runnable架构的启发。