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"
}
}
}
}
启动开发服务器
执照
DuckDB RAG MCP 示例根据 Apache 许可证 2.0 版提供。