RAG系统

一个基于MCP架构的完整RAG(检索增强生成)系统,支持语义搜索、重排序、RAG代理、统一API和零幻觉响应。

  • by FEDI-HASSINE
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 FEDI-HASSINE/RAG-System-from-Scratch-avec-MCP

使用说明

🔍 带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 + Streamlit

2.环境变量(松果酮+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 compatible

3.摄入+指数化松果

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<2以与Torch CPU兼容。
  • 要刷新数据,只需重放摄取,然后索引;名称空间Pinecone(PINECONE_NAMESPACE)允许您分离文档集。

4.启动MCP服务器

cd rag_system/mcp_server
uvicorn main:app --reload --port 8000

5.通过CLI(MCP客户端)进行测试

cd rag_system/demo
python rag_cli.py ask "What is system architecture?" --top-k 3

6.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 详细信息:

🤝 贡献

  1. 分叉项目
  2. 创建您的分支(git checkout -b feature/amazing-feature)
  3. 承诺(git commit -m 'Add amazing feature')
  4. 推(git push origin feature/amazing-feature)
  5. 打开拉取请求

📄 许可证

麻省理工学院许可证——瞧 许可证 更多详情。


用制造❤️ 帕尔 费迪·哈辛