返回市场
鸭鸭数据库-RAG-MCP示例

鸭鸭数据库-RAG-MCP示例

作者:nananaman4 星标更新:2025-04-20

项目介绍

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 示例是在Apache License, Version 2.0下提供的。