Raggy
RAG(检索增强生成)MCP服务器,使用BERT嵌入对文本文件提供语义搜索。
{
"mcpServers": {
"raggy": {
"command": "raggy",
"args": [
"mcp",
"--model-dir",
"/home/user/models/all-MiniLM-L6-v2",
"--dir",
"/home/user/knowledge-base",
"--query-tool-description",
"Search my local notes and docs using semantic similarity."
]
}
}
}模型
该系统需要一个嵌入式BERT模型来运行。
测试需要 all-MiniLM-L6-v2 BERT模型待下载。 运行提供的脚本下载模型文件:
./download_model.sh这将把模型下载到 models/all-MiniLM-L6-v2/ (约90MB)。
运行测试
cargo test --release # release mode suggested because computing embedding is expensive 运行MCP
cargo run --release -- mcp --model-dir
--dir
# or with nix
nix run -- mcp --model-dir
--dir
必需参数:
--model-dir:包含以下内容的模型目录的路径model.safetensors,tokenizer.json,以及config.json--dir:用于语义搜索的索引目录
可选参数:
--extensions:索引的逗号分隔文件扩展名(默认:“.txt,.md”)--chunk_size:文本块的大小(默认值:512)--chunk_overlap:块之间的重叠(默认值:50)
壳牌友好命令
虽然其主要目的是通过MCP协议使用它,但它可以通过几个shell命令进行完全测试
构建/更新索引并退出:
cargo run --release -- index --model-dir ./models/all-MiniLM-L6-v2 --dir .使用现有索引运行一个一次性查询,并将JSON打印到stdout:
cargo run --release -- query --model-dir ./models/all-MiniLM-L6-v2 --dir . --question "how do I run the project with nix?" --top-k 5如果所选内容不存在索引 model-dir + dir, raggy query 失败并要求您先索引。
