向量数据库服务

一个基于Pinecone的向量数据库服务,支持文档搜索、向量添加和批量处理Confluence数据。

  • by zx8086
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 zx8086/pinecone-vector-db-mcp-server

使用说明

MCP松果矢量数据库服务器

该项目实现了一个模型上下文协议(MCP)服务器,该服务器允许向松果矢量数据库读取和写入矢量化信息。它设计用于处理RAG处理的PDF数据和Confluence数据。

特性

  • 使用文本查询搜索类似文档
  • 使用自定义元数据将新向量添加到数据库中
  • 批量处理并上传Confluence数据
  • 按ID删除向量
  • 基本数据库统计(暂时禁用)

先决条件

  • Bun运行时
  • 松果API键
  • OpenAI API密钥(用于生成嵌入)

安装

  1. 克隆此存储库

  2. 安装依赖项:

    bun install
    
  3. 创建一个 .env 包含以下内容的文件:

    PINECONE_API_KEY=your-pinecone-api-key
    OPENAI_API_KEY=your-openai-api-key
    PINECONE_HOST=your-pinecone-host
    PINECONE_INDEX_NAME=your-index-name
    DEFAULT_NAMESPACE=your-namespace
    

用法

运行MCP服务器

启动服务器:

bun src/index.ts

服务器将通过stdio启动并监听MCP命令。

运行示例客户端

使用示例客户端测试服务器:

bun examples/client.ts

处理汇流数据

Confluence处理脚本提供了详细的日志记录和验证:

bun src/scripts/process-confluence.ts <file-path> [collection] [scope]

参数:

  • file-path:Confluence JSON文件的路径(必填)
  • collection:文档集合名称(默认为“documentation”)
  • scope:文档范围(默认为“文档”)

例子:

bun src/scripts/process-confluence.ts ./data/confluence-export.json "tech-docs" "engineering"

脚本将:

  1. 验证输入参数
  2. 处理和矢量化内容
  3. 批量上传矢量
  4. 验证上传成功
  5. 提供流程的详细日志

可用工具

服务器提供以下工具:

  1. search-vectors -搜索具有参数的类似文档:

    • 查询:字符串(搜索查询文本)
    • topK:数字(1-100,默认值:5)
    • 筛选器:对象(可选筛选条件)
  2. add-vector -添加带有参数的单个文档:

    • text:字符串(要矢量化的内容)
    • 元数据:对象(矢量元数据)
    • id:string(可选自定义id)
  3. process-confluence -将JSON数据与参数进行流程融合:

    • filePath:字符串(JSON文件的路径)
    • namespace:string(可选,默认为“capella文档搜索”)
  4. delete-vectors -删除带有参数的向量:

    • ids:string[](向量ID列表)
    • namespace:string(可选,默认为“capella文档搜索”)
  5. get-stats -获取数据库统计信息(暂时禁用)

数据库配置

服务器需要松果矢量数据库。在您的 .env 文件:

PINECONE_API_KEY=your-api-key
PINECONE_HOST=your-host
PINECONE_INDEX_NAME=your-index
DEFAULT_NAMESPACE=your-namespace

元数据模式

汇流文件

ID: confluence-[page-id]-[item-id]
title: [title]
pageId: [page-id]
spaceKey: [space-key]
type: [type]
content: [text-content]
author: [author-name]
source: "confluence"
collection: "documentation"
scope: "documentation"
...

贡献

  1. 分叉存储库
  2. 创建特征分支: git checkout -b feature/my-new-feature
  3. 提交您的更改: git commit -am 'Add some feature'
  4. 推到分支: git push origin feature/my-new-feature
  5. 提交拉取请求

许可证

麻省理工学院