文档向量化搜索工具

DuckDB RAG MCP Sample 是一个将Markdown文档向量化并通过DuckDB进行搜索的工具,适用于文档检索和知识管理场景。

  • by nananaman
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 nananaman/DuckDB-RAG-MCP-Sample

使用说明

DuckDB RAG MCP 示例

这是一个将Markdown文档嵌入向量化,以便能够从MCP通过RAG进行解说的示例。

进行向量化时 Plamo-Embedding-1B 正在使用中。

功能

  • 从Markdown文件中提取文本并进行向量化
  • 使用DuckDB进行向量搜索
  • 使用Parquet文件进行向量化数据的持久化
  • 从MCP进行向量搜索

使用方法

向量数据生成

首先,将要搜索的 markdown 文件放置在特定目录中,然后使用以下命令将其转换为 Parquet 文件。

uv run main.py --directory ~/path/to/markdown/files --parquet vectors.parquet

MCP的设置

构建

以下命令用于单个二进制文件 dist/server 将作为生成内容。

uv run pyinstaller --clean --strip --noconfirm --onefile server.py

MCP 的客户端设置

请根据想要使用的客户端进行设置。

如果是 Claude Desktop 的话,情况如下。

请指定刚才转换的VECTOR_PARQUET文件。

uv run mcp install server.py -v VECTOR_PARQUET=/path/to/vectors.parquet

将按以下方式设置。

{
  "mcpServers": {
    "DuckDB-RAG-MCP-Sample": {
      "command": "/path/to/dist/server",
      "env": {
        "VECTOR_PARQUET": "/path/to/vectors.parquet"
      }
    }
  }
}

启动开发服务器

uv run mcp dev server.py

许可证

DuckDB RAG MCP Sample根据Apache License, Version 2.0提供。