房间代码RAG查找
RooCode MCP服务器,用于使用向量嵌入和语义搜索在文档和代码库中执行RAG(检索增强生成)查找。
示例用法
问一个问题:例如“word文档中的最大条目数是多少?”并提示LLM“使用rag”。法学硕士通常能很好地判断何时应该使用工具,并可能自行决定使用工具。
\*这与Word中可寻址的XML属性和元素的最大数量有关
特性
- 全面实施RAG:使用ChromaDB和Haystack完成基于向量的语义搜索
- 文献检索:从PDF文档中自动提取文本和分块
- 矢量嵌入:语义相似性的句子变换器嵌入
- RAG查找工具:通过相关性评分搜索文档和代码库
- 测试工具:简单的hello world工具,用于验证MCP服务器连接
- 异步MCP协议:通过stdio完全支持JSON-RPC 2.0
安装
- 安装Python依赖项:
pip install -r requirements.txt- 通过添加以下配置来配置RooCode以使用此MCP服务器
mcp_config.json到您的房间代码设置。
配置
- 添加
mcp_config.json在MCP工具的编辑全局设置部分,将您的RooCode MCP服务器设置。如果工具已准备好使用,它将显示绿色状态。
- 设置以下环境变量:
- RAG_LOOKUP_PATH:此项目目录的路径 - PYTHON_PATH:Python可执行文件的路径
- 在中配置参数
parameters.py:
- EMBEDDING_MODEL:句子转换器模型(默认:全mpnet-base-v2) - COLLECTION_NAME:ChromaDB集合名称 - CHUNK_SIZE:文本块大小(默认值:500) - CHUNK_OVERLAP:块之间的重叠(默认值:50) - DEFAULT_TOP_K:要返回的结果数(默认值:5)
可用工具
1. rag_lookup
在文档和代码存储库中使用RAG执行语义搜索。返回具有相似性得分和元数据的相关块。
参数:
query(必填):搜索查询source(可选):在哪里搜索-“文档”、“仓库”或“两者都有”(默认值:“两者都”)
退货:
- 具有相似性得分的相关文本块
- 源文件信息和元数据
- 搜索文档统计
例子:
{
"query": "authentication implementation",
"source": "both"
}响应格式:
{
"status": "success",
"query": "authentication implementation",
"results": [
{
"content": "...",
"score": 0.85,
"metadata": {
"file_name": "document.txt",
"source_file": "/path/to/document.txt"
}
}
],
"metadata": {
"documents_searched": 5,
"repos_searched": 3,
"total_matches": 5
}
}2. say_hello
简单的测试工具,返回带有时间戳的问候消息。
参数:
name(可选):要包含在问候语中的名称(默认值:“World”)
例子:
{
"name": "RooCode"
}用法
1.文件摘录和索引
将PDF文档放入 Documents/ 或 Repos/ 文件夹,然后运行:
# Extract text from PDFs
python extraction/parse_pdf.py
# Populate the vector database
python extraction/populate_database.py2.查询RAG系统
# Test RAG lookup directly
python query_rag.py
Or ask3.通过MCP服务器使用
在RooCode中配置后,使用 rag_lookup 工具通过MCP接口。RooCode设置中有一个MCP菜单,编辑全局设置将为您提供要编辑的json设置 {"mcpServers":{}},将mcp_config.json复制并粘贴到全局mcp设置中。
测试
在本地测试MCP服务器:
# Using MCP inspector
npx @modelcontextprotocol/inspector python mcp_tool.py
# Direct stdio test
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | python mcp_tool.py项目结构
RooCode-RAG-Lookup/
├── mcp_tool.py # Main MCP server implementation
├── query_rag.py # RAG query functions
├── parameters.py # Configuration parameters
├── run_rag_lookup.bat # Windows batch launcher
├── mcp_config.json # Example RooCode configuration
├── requirements.txt # Python dependencies
├── extraction/
│ ├── parse_pdf.py # PDF text extraction
│ └── populate_database.py # Database population and indexing
├── ExtractedText/ # Extracted text files (.txt + .meta.json)
├── chroma_db/ # ChromaDB vector database
└── README.md # This file技术栈
- MCP Python SDK:RooCode集成的协议实现
- 干草堆:文档处理和RAG管道框架
- 色度数据库:用于嵌入存储的矢量数据库
- 句子转换:语义嵌入(全mpnet-base-v2)
- PDF水管工:PDF文本提取,保留布局
- 异步/等待:并发请求处理
- JSON-RPC 2.0:通信协议
- 标准运输:RooCode集成
运作原理
- 文档提取:PDF解析使用
parse_pdf.py它提取文本和元数据 - 文本组块:使用以下命令将文档拆分为重叠的块
DocumentSplitter - 嵌入生成:使用句子变换器将文本块转换为768维向量
- 矢量存储器:嵌入内容与元数据一起存储在ChromaDB中以供检索
- 语义搜索:使用余弦相似度嵌入查询并将其与存储的向量进行匹配
- 结果排名:返回Top-K最相关的块以及分数和元数据
需求
看 requirements.txt 完全依赖。关键包:
mcp>=1.0.0-MCP协议支持haystack-ai-RAG框架chroma-haystack-ChromaDB集成sentence-transformers-嵌入模型pdfplumber-PDF提取
许可证
麻省理工学院
