使用说明
🔍 集成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架构的启发。