使用说明
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-text
Ollama设置
如果您选择使用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.py
MCP检查员
要检查和调试您的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维护跨会话的文档嵌入
- 自动模型检测:服务器会自动为所选提供程序使用正确的嵌入模型