OpenAI向量存储交互工具

一个演示如何运行本地MCP服务器并与客户端交互的工具,支持文档上传和向量存储搜索功能。

  • by CiaranChaney
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 CiaranChaney/OpenAI-MCP-Playground

使用说明

Python OpenAI游乐场+MCP

此存储库包含一个小型游乐场,演示如何运行本地MCP服务器并从客户端与之交互。它还包括一个在矢量存储中上传和搜索文档的简单示例。

先决条件

  • Python 3.8+(推荐3.10或3.11)
  • pip(或您首选的包管理器)
  • ngrok(用于将本地MCP服务器暴露于互联网)
  • 如果使用OpenAI SDK,则在您的环境中配置的OpenAI API密钥

快速启动——运行MCP服务器并用ngrok公开它

  1. 在终端中启动MCP服务器(本例假设服务器监听端口8000):
python3 mcp_server.py
  1. 在第二个终端中,启动ngrok将HTTP流量转发到MCP服务器:
ngrok http 8000
  1. ngrok启动后,它会打印一个或多个“转发”URL(例如 https://abcd1234.ngrok.io).复制HTTPS转发URL。

  2. 更新 mcp_client.py 指向ngrok转发URL,并包含MCP服务器返回的访问令牌(如果您的设置需要)。典型的更新地点:

  • mcp_client.py → set BASE_URL (或等效)到ngrok转发URL
  • mcp_client.py → set access_token 或相当于MCP服务器打印的令牌

例如(伪):

# mcp_client.py
BASE_URL = "https://abcd1234.ngrok.io"
ACCESS_TOKEN = "<paste-token-here>"
  1. 运行客户端以练习MCP端点:
python3 mcp_client.py

矢量存储示例(上传和搜索文档)

此仓库还包含一个简单的示例(vector_store.py)演示如何上传文件(例如 policies.txt)转到矢量存储并运行文本搜索。

要上传文件并从CLI运行查询,请执行以下操作:

# upload a file and run the default query
python3 vector_store.py --file policies.txt

# upload a different file and run a custom query
python3 vector_store.py -f ./docs/handbook.txt -q "What is the vacation policy?"

如果您没有指定 --file,脚本将以交互方式提示您输入路径,并在尝试上传之前验证文件是否存在。

提示和注意事项

  • 为项目使用虚拟环境(推荐):
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
  • 如果您计划上传多个文件,请选择单个矢量存储,并为每个块添加元数据(文件名、校验和、块id、标签),而不是为每个文件创建一个矢量存储。看 vector_store.py 和 search.py 例如如何处理搜索和上传。

  • 如果MCP服务器需要身份验证,请确保 mcp_client.py 在运行之前,使用正确的令牌和URL进行更新。

故障排除

  • 如果客户端无法访问MCP服务器:

    • 确认 mcp_server.py 正在端口8000上运行和侦听。
    • 确认ngrok正在运行,并且您已将HTTPS转发URL复制到 mcp_client.py.
    • 检查可能阻止ngrok的防火墙/防病毒或代理设置。
  • 如果上传失败:

    • 验证文件路径和权限。
    • 检查脚本打印的SDK/neneneba API错误,以获取有关身份验证或速率限制的提示。