大文件处理RAG系统

MCP-RAG是一个基于模型上下文协议(MCP)构建的大文件处理系统,支持多种格式文档,具备企业级可靠性和高级RAG功能。

  • by AnuragB7
  • Python
  • 本地部署
  • 9 星标
  • 更新于
在 GitHub 查看 anuragb7/mcp-rag

使用说明

📚 MCP-RAG

MCP-RAG系统采用模型上下文协议(MCP)构建,使用智能分块策略、多格式文档支持和企业级可靠性处理大文件(高达200MB)。

🌟 特性

📄 多格式文档支持

  • 可移植文档格式:具有表检测功能的智能逐页处理
  • 文档:段落和表格提取,保留格式
  • Excel:具有列上下文(.xlsx/.xls)的表感知处理
  • CSV文件:智能行批处理,保留标题
  • PPTX 文件:支持PPTX
  • 图像:支持jpeg、png、webp、gif等格式和OCR

🚀 大文件处理

  • 自适应组块:基于文件大小的不同策略
  • 内存管理:50MB+文件的流式处理
  • 进度跟踪:实时进度指标
  • 超时处理:妥善处理长时间运行的操作

🧠 先进的RAG能力

  • 语义搜索:向量相似度与置信度得分
  • 跨文档查询:同时搜索多个文档
  • 消息来源:具有相似性得分的引用
  • 混合检索:结合语义搜索和关键字搜索

🔌 模型上下文协议(MCP)集成

  • 通用工具接口:标准化的AI到工具通信
  • 自动发现:LangChain代理自动查找和使用工具
  • 安全通信:内置权限控制
  • 可扩展架构:易于添加新的文档处理程序

🏢 企业就绪

  • 自定义LLM端点:支持任何与OpenAI兼容的API
  • 矢量数据库选项:ChromaDB(本地)+Milvus(生产)
  • 批量处理:处理API速率限制和批量大小限制
  • 错误恢复:重试逻辑和优雅降级

🏗️ 建筑

┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐ │ 溪流│ │ LangChain│ │ MCP服务器│ │ 前端│◄──►│ 代理│◄──►│ (工具)│ └─────────────────┘ └──────────────────┘ └─────────────────┘ │ ┌────────────────────────┼────────────────────────┐ │ ▼ │ ┌───────▼────────┐ ┌─────────────────┐ ┌──────▼──────┐ │ 文件│ │ 矢量数据库│ │ API有限责任公司│ │ 处理器│ │ (ChromaDB)│ │ 端点│ └────────────────┘ └─────────────────┘ └─────────────┘

🚀 快速开始

先决条件

  • Python 3.11+
  • OpenAI API密钥或兼容LLM端点
  • 8GB+RAM(用于大文件处理)

安装

克隆存储库

git clone https://github.com/yourusername/rag-large-file-processor.git
cd rag-large-file-processor

python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

pip install -r requirements.txt

# Create .env file
cat > .env << EOF
OPENAI_API_KEY=your_openai_api_key_here
BASE_URL=https://api.openai.com/v1
MODEL_NAME=gpt-4o
VECTOR_DB_TYPE=chromadb


streamlit run streamlit_app.py