🔍 带MCP的刮擦系统
  
一个系统 RAG(检索增强生成) 完整,从头开始构建,具有架构 MCP(模型上下文协议).
✨ 功能
- 🔍 语义搜索 使用Pinecone(救援梁)和SentenceTransformers
- 📊 重新排序 使用交叉编码器实现最大相关性
- 🤖 RAG探员 协调整个管道
- 🔌 API MCP 所有工具的统一
- 🛡️ 零幻觉 -仅基于文件的答复
- 📈 LLM作为法官的评级 具有标准化度量
- 💻 CLI+UI流式显示 为了演示
🚀 快速启动
1.克隆和安装
git clone https://github.com/FEDI-HASSINE/RAG-System-from-Scratch-avec-MCP.git
cd RAG-System-from-Scratch-avec-MCP
python -m venv .venv && source .venv/bin/activate
pip install -r rag_system/requirements-phase2.txt # inclut ingestion + Pinecone + Streamlit2.环境变量(松果酮+LLM)
export PINECONE_API_KEY="..."
export PINECONE_INDEX="rag-index" # existant dans votre compte
export PINECONE_NAMESPACE="demo" # changez selon vos données
export OPENAI_API_KEY="..." # ou autre LLM compatible3.摄入+指数化松果
source .venv/bin/activate
python rag_system/run_ingestion.py # chunking (Chonkie activé si installé)
python rag_system/run_indexing_pinecone.py # envoie les embeddings vers Pinecone笔记: - Chonkie已安装在演示环境中;如果在其他地方重新安装,请可选安装(pip install chonkie==1.5.2 --no-deps)然后保持numpy\ - 要刷新数据,只需重放摄取,然后索引;名称空间Pinecone(PINECONE_NAMESPACE)允许您分离文档集。
4.启动MCP服务器
cd rag_system/mcp_server
uvicorn main:app --reload --port 80005.通过CLI(MCP客户端)进行测试
cd rag_system/demo
python rag_cli.py ask "What is system architecture?" --top-k 36.Lancer l'interface web
cd rag_system/demo
streamlit run app.py
# Ouvrez http://localhost:8501📦 建筑
RAG-System-from-Scratch-avec-MCP/
└── rag_system/
├── data/ # Phase 1: Ingestion & chunking
├── embeddings/ # Phase 2: Vectorisation
├── vector_store/ # Phase 2: Index Pinecone (FAISS fallback)
├── mcp_server/ # Phase 5: API MCP
│ └── tools/ # Phases 3-4: Outils RAG
├── agents/ # Phase 6: Agent RAG
├── evaluation/ # Phase 7: Métriques
└── demo/ # Phase 8: CLI + UI🔄 管道RAG
Question
│
▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Embed │ ──▶ │ Retrieve │ ──▶ │ Rerank │
│ (384 dims) │ │ (Pinecone) │ │ (CrossEnc) │
└──────────────┘ └──────────────┘ └──────────────┘
│
▼
┌──────────────┐ ┌──────────────┐
│ Réponse │ ◀── │ LLM │
│ + Sources │ │ Generate │
└──────────────┘ └──────────────┘🛠️ 技术
| 组件 | 技术 |
|---|---|
| 嵌入 | 句子转换器 all-MiniLM-L6-v2 |
| 矢量存储 | 松果(rag-index /可配置名称空间)-备用Fais |
| 重新排序 | 交叉编码器 ms-marco-MiniLM-L-6-v2 |
| API | FastAPI+MCP协议 |
| 法学硕士 | OpenAI/Ollama/Mock |
| CLI | 打字机+丰富 |
| UI | 流光显示 |
| 评估 | 法学硕士作为法官 |
📊 评价指标
| 度量 | 描述 |
|---|---|
| 接地性 | 基于上下文的响应 |
| 相关性 | 回答问题 |
| 忠诚 | 幻觉 |
📖 文档
每个文件包含一个 README.md 详细信息:
🤝 贡献
- 分叉项目
- 创建您的分支(
git checkout -b feature/amazing-feature) - 承诺(
git commit -m 'Add amazing feature') - 推(
git push origin feature/amazing-feature) - 打开拉取请求
📄 许可证
麻省理工学院许可证——瞧 许可证 更多详情。
______________________________________________________________________
用制造❤️ 帕尔 费迪·哈辛
