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.parquetMCP的设置
构建
以下命令用于单个二进制文件 dist/server 将作为生成内容。
uv run pyinstaller --clean --strip --noconfirm --onefile server.pyMCP 的客户端设置
请根据想要使用的客户端进行设置。
如果是 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提供。
