RAG MCP服务器文档
一个使用模型上下文协议(MCP)的检索增强生成(RAG)系统,允许您使用AI摄取文档并查询它们。
特性
- 文件摄入:加载文本文档并创建向量嵌入
- 语义搜索:使用自然语言查询文档
- 永久存储:用于持久文档存储的ChromaDB矢量数据库
- MCP架构:集成LangGraph客户端的FastMCP服务器
- AI驱动:支持多个AI提供商:
- Google Gemini用于嵌入和会话AI - Ollama负责本地法学硕士执行(注重隐私)
设置
- Python要求:
- 需要Python 3.11或更高版本 - 这个项目已经用Python 3.11进行了测试
- 创建虚拟环境(推荐):
python3.11 -m venv .venv
source .venv/bin/activate # On macOS/Linux
# or
.venv\Scripts\activate # On Windows- 安装依赖关系:
pip install -r requirements.txt- 配置LLM提供程序:
选择Google Gemini(基于云)或Ollama(本地)作为您的法学硕士提供者:
选项A:谷歌双子座(默认)
# Copy the example environment file
cp .env.example .env
# Edit .env and set LLM_PROVIDER=gemini
# Add your Google Gemini API key
# Get your API key from: https://makersuite.google.com/app/apikey选项B:Ollama(当地)
# Copy the example environment file
cp .env.example .env
# Edit .env and set LLM_PROVIDER=ollama
# Make sure Ollama is installed and running locally
# Install Ollama from: https://ollama.ai- 更新.env文件:
对于谷歌双子座:
LLM_PROVIDER=gemini
GOOGLE_GEMINI_API_KEY=your_actual_google_gemini_api_key_here对于Ollama:
LLM_PROVIDER=ollama
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=llama3.2
OLLAMA_EMBEDDING_MODEL=nomic-embed-textOllama设置
如果您选择使用Ollama,请按照以下附加步骤操作:
- 安装Ollama:
# Visit https://ollama.ai and download for your platform
# Or use package manager (macOS):
brew install ollama- 启动Ollama服务:
ollama serve- 拉动所需型号:
# Pull the chat model (choose one):
ollama pull llama3.2 # Recommended: Latest Llama model
# OR
ollama pull llama2 # Alternative: Stable Llama2 model
# Pull the embedding model (required):
ollama pull nomic-embed-text用法
- 激活虚拟环境:
source .venv/bin/activate # On macOS/Linux
# or
.venv\Scripts\activate # On Windows- 启动MCP服务器:
python rag_mcp_server.py- 启动客户端(在单独的终端中):
# Activate the virtual environment in the new terminal too
source .venv/bin/activate
python mcp_client.py- 摄入文件:
You: ingest_document /path/to/your/document.txt
# OR provide the file path directly:
You: /Users/username/Documents/sample_doc.md- 查询文档:
You: What are the main topics covered in this document?
You: How can I get IT support?
You: What are the working hours?- 退出并停用:
# To exit the client, type 'exit', 'quit', or 'q'
# To deactivate the virtual environment when done:
deactivate可用工具
ingest_document(file_path: str):将文本文档加载并处理到矢量存储中query_rag_store(query: str):根据查询在矢量存储中搜索相关内容
建筑
- RAG服务器:基于FastMCP的服务器,提供文档摄取和查询工具
- 客户端:基于LangGraph的会话代理,支持:
- 谷歌双子座(基于云) - Ollama(本地,注重隐私)
- 向量存储:ChromaDB用于持久文档存储
- 嵌入:特定于提供商的嵌入模型:
- 谷歌双子座: models/embedding-001 - 奥拉马: nomic-embed-text
故障排除
常见问题
- 404 Ollama嵌入错误:
INFO HTTP Request: POST http://localhost:11434/api/embed "HTTP/1.1 404 Not Found"解决方案:拉动嵌入模型:
ollama pull nomic-embed-text- ChromaDB重置:
如果您需要清除所有摄入的文件:
rm -rf rag_chroma_db- 在提供商之间切换:
- 编辑 .env 文件和更改 LLM_PROVIDER - 重新启动MCP客户端 - 如果切换嵌入模型,请清除ChromaDB
测试配置
使用提供的测试脚本验证您的设置:
python test_llm_providers.pyMCP检查员
要检查和调试您的MCP服务器工具和功能:
# Activate virtual environment and run MCP Inspector
source .venv/bin/activate && npx @modelcontextprotocol/inspector /path/to/your/project/.venv/bin/python rag_mcp_server.py替换 /path/to/your/project/ 根据您的实际项目路径。这将打开一个web界面,您可以在其中:
- 查看可用工具(
ingest_document和query_rag_store) - 交互式测试工具功能
- 调试工具模式和响应
- 验证您的MCP服务器实现
安全
- API键仅从环境变量加载
- 这
.env文件被排除在版本控制之外 - 永远不要将API密钥提交到存储库
需求
- Python 3.11+
- Google Gemini:Google Gemini API密钥
- 献给Ollama:当地Ollama安装,配备所需型号
- 中列出的所需软件包
requirements.txt
附加功能
- 提供商灵活性:在基于云的和本地AI提供商之间切换
- 隐私选项:使用Olama进行完全本地文档处理
- 永久存储:ChromaDB维护跨会话的文档嵌入
- 自动模型检测:服务器会自动为所选提供程序使用正确的嵌入模型
