IMT Mines Alès聊天机器人-与MCP合作的RAG代理
一个由人工智能驱动的聊天机器人,旨在为IMT Mines Alès的国际学生提供学术信息、行政程序和校园服务。该项目实现了 代理检索增强生成(RAG) 系统使用 模型上下文协议(MCP) 和 LangGraph.
     
______________________________________________________________________
🎥 演示视频
https://github.com/user-attachments/assets/5bc3b84b-d52a-4f63-94f9-d4db74552800
______________________________________________________________________
📋 目录
______________________________________________________________________
🎯 概述
这个聊天机器人通过回答以下问题为国际学生提供全天候帮助:
- 课程大纲和学术要求
- 行政程序和文件
- 校园设施和学生服务
- 关于IMT Mines Alès的一般信息
系统实现 9.26/10 总分(由GPT-4o作为评委评估),表明:
- 8.91/10 正确性
- 9.12/10 完整性
- 10.00/10 安全
______________________________________________________________________
🏗️ 建筑
该系统由三个主要部分组成:
┌─────────────────────────────────────────────────────────────┐
│ Frontend (React + TS) │
│ Port: 5173 │
└──────────────────────────┬──────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Backend (FastAPI + LangGraph Agent) │
│ Port: 8000 │
│ ┌────────────────────────────────────────────────────┐ │
│ │ ReAct Agent (gpt-oss-20b via Groq) │ │
│ │ • Reasoning & Tool Orchestration │ │
│ │ • Memory Persistence │ │
│ └────────────┬───────────────────────────────────────┘ │
└───────────────┼─────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ MCP Server (RAG Tools) │
│ Port: 3000 │
│ ┌────────────────────────────────────────────────────┐ │
│ │ Tools: │ │
│ │ • ingest_documents (PDF/URL) │ │
│ │ • retrieve_documents (Semantic Search) │ │
│ │ • get_vector_store_info │ │
│ │ • clear_vector_store │ │
│ └────────────┬───────────────────────────────────────┘ │
└───────────────┼─────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ ChromaDB Vector Store + BGE-M3 Embeddings │
│ • Chunk Size: 1000 tokens │
│ • Overlap: 200 tokens │
│ • Top-K: 5 documents │
└─────────────────────────────────────────────────────────────┘关键设计决策
- BGE-M3嵌入:用于检索的最先进的多语言嵌入模型
- 重演模式:支持复杂查询的推理和动作交织
- MCP协议:AI与工具通信的标准化接口
- 低延迟推断:Groq API提供亚秒响应时间
- 国家代理人:LangGraph管理对话历史和上下文
______________________________________________________________________
✨ 特性
- 🔍 语义搜索:使用密集向量嵌入检索相关文档
- 🤖 重新代理:通过复杂的多步骤查询进行推理
- 📚 文档管理:从本地文件、目录或URL中获取PDF
- 🌐 多语言支持:BGE-M3支持多种语言
- 💬 聊天界面:使用markdown渲染清理基于React的UI
- 🔒 安全第一:在评估中获得完美的10/10安全分数
- 📊 可观察推理:透明的代理思维过程
______________________________________________________________________
📦 先决条件
在开始之前,请确保已安装以下内容:
- Python 3.11+ (用Python 3.11测试)
- Node.js 18+ 和 npm
- Git
需要API密钥
您需要API密钥用于:
- 格罗克API:为
gpt-oss-20b模型(获取API密钥) - OpenAI API (可选):适用于法学硕士作为法官
创建 .env 项目根目录中的文件:
GROQ_API_KEY=your_groq_api_key_here
# OPENAI_API_KEY=your_openai_api_key_here # Optional______________________________________________________________________
🚀 安装
1.克隆存储库
git clone https://github.com/Samreth99/agentic-mcp-imt.git
cd agentic-mcp-imt2.安装UV包管理器
UV是一个快速的Python包安装程序和解析器。按照以下步骤安装 官方文件:
Windows(PowerShell):
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh3.创建虚拟环境
uv venv .venv4.激活虚拟环境
窗户:
.venv\Scripts\activatemacOS/Linux:
source .venv/bin/activate5.安装项目依赖项
uv pip install .这将安装所有必需的依赖项,包括:
- LangChain和LangGraph
- FastAPI和Uvicorn
- ChromaDB
- 句子转换器
- 还有更多。..
6.安装前端依赖项
cd frontend
npm install
cd ..______________________________________________________________________
🏃 运行应用程序
应用程序需要 三个独立的终端窗口,每个运行不同的组件。
终端1:MCP服务器(RAG工具)
# Make sure virtual environment is activated
uv run -m mcp_server.server.tools.rag.rag_server预期产量:
MCP Server running on http://localhost:3000
Vector store initialized with ChromaDB终端2:代理后端服务器
# Make sure virtual environment is activated
uv run -m agent.main预期产量:
INFO: Uvicorn running on http://127.0.0.1:8000
INFO: Application startup complete.终端3:前端开发服务器
cd frontend
npm run dev预期产量:
VITE v5.x.x ready in xxx ms
➜ Local: http://localhost:5173/
➜ Network: use --host to expose访问应用程序
打开浏览器并导航到:
http://localhost:5173您应该看到聊天界面已准备好接受查询!
______________________________________________________________________
📂 项目结构
agentic-mcp-imt/
├── agent/ # Backend agent implementation
│ ├── main.py # FastAPI application entry point
│ ├── agent_client.py # Agent client for testing
│ ├── api/ # FastAPI routes and services
│ ├── config/ # Configuration files
│ │ └── prompts.py # System prompts and templates
│ ├── evaluation/ # Evaluation
│ │ └── data_set.py # Testset
│ │ └── llm_as_a_judge.py # LLM-as-a-Judge Evalulation
│ ├── graph/ # LangGraph implementation
│ │ └── graph_builder.py # LangGraph ReAct agent logic
│ ├── schemas/ # Pydantic schemas
│ └── utils/ # Utility functions
│
├── mcp_server/ # MCP server implementation
│ └── server/
│ └── tools/
│ └── rag/
│ ├── rag_server.py # MCP RAG tool server
│ └── ingestion/ # Data ingestion pipeline
│ └── vector_store.py # ChromaDB interface
│
├── frontend/ # React TypeScript frontend
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── api/ # API services
│ │ └── App.tsx # Main application
│ ├── package.json
│ └── vite.config.ts
│
├── evaluation_results.json # Evaluation metrics
├── pyproject.toml # Python project configuration
├── docker-compose.yaml # Docker orchestration
├── Dockerfile.backend # Dockerfile for the backend
├── Dockerfile.mcp # Dockerfile for the MCP server
├── uv.lock # UV lock file
└── README.md # This file🛠️ 使用的技术
后端
- LangChain和LangGraph:代理编排和推理
- 快速API:高性能异步web框架
- ChromaDB:用于嵌入的矢量数据库
- BGE-M3:多语言嵌入模型
- 格罗克API:超低延迟LLM推理
- 模型上下文协议(MCP):标准化工具界面
前端
- 反应18:UI框架
- TypeScript:类型安全开发
- 维特:快速构建工具
- 尾风CSS:实用性优先的造型
基础设施
- 紫外线:快速Python包管理
- Docker&Docker编写:集装箱化
- Uvicorn:ASGI服务器
______________________________________________________________________
📊 评估结果
使用评估 GPT-4o担任法官 33道试题:
| 度量 | 代理RAG MCP | 微调基线 |
|---|---|---|
| 正确性 | 8.91/10 ⭐ | 5.32/10 |
| 完整性 | 9.12/10 ⭐ | 4.85/10 |
| 安全 | 10.00/10 ⭐ | 9.35/10 |
| 总体评分 | 9.26/10 ⭐ | 6.17/10 |
主要发现
- ✅ 接地响应:RAG检索确保事实准确性
- ✅ 综合答案:多文档综合提供完整的信息
- ✅ 完善的安全:严格遵守道德准则
- ✅ 可扩展体系结构:无需再培训即可轻松更新知识库
______________________________________________________________________
🔮 未来工作
生产基础结构
- \[\]PostgreSQL用于用户管理
- \[\]MongoDB用于对话历史记录
- \[\]OAuth 2.0身份验证
- \[\]带有GitHub操作的CI/CD管道
- \[\]Kubernetes部署
- \[\]监控和警报
模型改进
- \[ \] 混合检索:结合BM25稀疏+密集嵌入
- \[ \] 重新排序:交叉编码器,提高精度
- \[ \] 自适应RAG:查询复杂性感知检索
- \[ \] 自我RAG:自我反思一代
- \[ \] 基于人类反馈的强化学习:收集用户反馈以持续改进
功能扩展
- \[\]调度管理MCP服务器
- \[\]管理程序MCP服务器
- \[\]活动日历集成
- \[\]多语言用户界面支持
- \[\]导出对话历史记录
______________________________________________________________________
🤝 贡献
欢迎投稿!请随时提交拉取请求。
- 分叉存储库
- 创建功能分支(
git checkout -b feature/AmazingFeature) - 提交您的更改(
git commit -m 'Add some AmazingFeature') - 推到分支(
git push origin feature/AmazingFeature) - 打开拉取请求
______________________________________________________________________
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
______________________________________________________________________
相关技术
______________________________________________________________________
🙏 致谢
- IMT Mines Alès提供机构知识库
- 模型上下文协议规范的拟人化
- LangChain团队为优秀的代理框架
- Groq提供超快速LLM推理
______________________________________________________________________
Made with ❤️ for international students at IMT Mines Alès
