离线RAG-MCP语义搜索服务

一个支持混合向量和全文检索的离线优先语义搜索服务,适用于MDN文档的本地化查询。

  • by deepsweet
  • TypeScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 deepsweet/mdn

使用说明

先离线 MDN Web文档 RAG-MCP服务器已准备好使用混合矢量(1024-d)和全文(BM25)检索进行语义搜索。

示例

内容

数据集涵盖了核心MDN文档部分,包括:

  • Web API
  • JavaScript
  • 超文本标记语言
  • 层叠样式表
  • 可缩放矢量图形
  • 超文本传输协议

看 数据集仓库 请访问HuggigFace了解更多详情。

用法

1.下载数据集和嵌入模型

npx -y @deepsweet/mdn@latest download

两者 数据集 (约260 MB)和 嵌入模型GGUF文件 (~438 MB)将直接从HugginFace下载并存储在其默认缓存位置(通常 ~/.cache/huggingface/),就像 hf download 命令确实如此。

2.设置RAG-MCP服务器

{
  "mcpServers": {
    "mdn": {
      "command": "npx",
      "args": [
        "-y",
        "@deepsweet/mdn@latest",
        "server"
      ],
      "env": {}
    }
  }
}

[!提示] 移除 @latest 为了获得完整的离线体验,但请记住,这将缓存一个固定版本,而不会自动更新。

这 stdio 服务器将生成 llama.cpp 在引擎盖下,加载嵌入模型(~655 MB RAM/VRAM),并查询数据集——一切按需进行。

设置

环境变量 默认值 说明
MDN_DATASET_PATH HuggingFace缓存 自定义数据集目录路径
MDN_MODEL_PATH HuggingFace缓存 自定义模型文件路径
MDN_MODEL_TTL 1800 具有嵌入模型的llama.cpp应在内存中加载多长时间,以秒为单位; 0 防止卸载
MDN_QUERY_DESCRIPTION Natural language query for hybrid vector and full-text search 自定义搜索查询描述,以防您的LLM在询问MCP工具时表现不佳
MDN_SEARCH_RESULTS_LIMIT 3 总搜索结果限制
HF_TOKEN 可选HuggingFace访问令牌,有助于偶尔的“HTTP 429太多请求”

做

  • [x] 使用GitHub Actions每月自动更新和上传数据集工件
  • [x] 自动修剪旧数据集修订版,如 hf cache prune
  • []找出更好的查询描述,这样LLM就不会过度生成关键字

条款

许可证

RAG-MCP服务器本身和处理脚本在MIT下可用。