项目简介

'openai-sdk-knowledge-org' 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型(LLM)客户端提供关于 OpenAI SDK、API 使用和最佳实践的专业知识。它集成了检索增强生成 (RAG) 能力,支持通过语义搜索、网页搜索和翻译功能,为LLM提供实时、准确的上下文信息。服务器部署在 Cloudflare Workers 上,利用 Cloudflare Queues、D1 和 Vectorize 进行数据管理和检索。

主要功能点

  • 智能问答: 接收LLM客户端的自然语言问题,通过RAG和可选的网页搜索,提供关于OpenAI SDK和API的全面解答。
  • 资源列表与读取: 允许LLM客户端发现并获取相关的代码示例、文档链接等资源。
  • 多语言支持: 自动检测并翻译查询和响应,支持多语言交互。
  • 数据收集与处理: 自动从GitHub仓库(如OpenAI官方SDK)和OpenAI社区论坛收集、清洗、摘要并嵌入知识内容,构建可搜索的知识库。
  • OAuth 2.0认证: 提供标准的OAuth 2.0授权服务,确保MCP客户端与服务器之间的安全通信。

安装步骤

  1. 环境准备:

    • 您需要一个 Cloudflare 账户,并配置好以下服务:
      • Cloudflare Workers: 用于运行服务器代码。
      • Cloudflare D1 数据库: 用于存储元数据、任务队列和OAuth客户端信息。
      • Cloudflare Vectorize 索引: 用于存储和检索嵌入向量,实现语义搜索。
      • Cloudflare Queues: 用于处理后台数据收集任务。
    • 您需要一个 OpenAI API 密钥,用于模型调用(如嵌入生成、摘要、问答)。
    • 可选配置 GitHub Personal Access TokenDiscourse API Key 以启用从GitHub仓库和OpenAI社区论坛的数据收集功能,从而构建更丰富的知识库。
  2. 获取代码:

    • 将 'openai-sdk-knowledge-org' 仓库克隆到您的本地开发环境。
  3. 配置 Cloudflare Worker:

    • 编辑 'wrangler.toml' 文件,绑定您的 Cloudflare 资源(包括 D1 数据库、Vectorize 索引和 Queues)。
    • 设置环境变量,这些变量可以在 Cloudflare Workers 控制台或 'wrangler.toml' 中配置:
      • 'OPENAI_API_KEY': 您的OpenAI API密钥。
      • 'CLOUDFLARE_ACCOUNT_ID': 您的Cloudflare账户ID(如果使用Cloudflare AI Gateway)。
      • 'CLOUDFLARE_AI_GATEWAY_ID': 您的Cloudflare AI Gateway ID(如果使用AI Gateway)。
      • 'GITHUB_TOKEN': (可选)用于从GitHub收集数据的个人访问令牌。
      • 'DISCOURSE_API_KEY': (可选)用于从OpenAI社区论坛收集数据的API密钥。
      • 'LOG_LEVEL': 日志级别,如 "info" 或 "debug"。
      • 'ENVIRONMENT': 运行环境,"production" 或 "development"。
  4. 部署至 Cloudflare Workers:

    • 使用 Cloudflare 的 Wrangler CLI 工具进行部署。在项目根目录下运行以下命令:
      wrangler deploy
    • 部署成功后,您将获得一个可访问的 Worker URL,例如 'https://your-worker-name.your-account.workers.dev'。

服务器配置 (MCP客户端使用)

MCP客户端需要通过JSON-RPC协议与此服务器通信。以下是配置MCP客户端连接此服务器所需的关键信息(假设您的Worker部署在 'https://your-worker-name.your-account.workers.dev'):

{
  "mcpServers": {
    "openai-sdk-knowledge": {
      "type": "streamable-http",
      "url": "https://your-worker-name.your-account.workers.dev/mcp",
      "headers": {
        "Authorization": "Bearer {您的MCP API密钥}"
      },
      "description": "提供OpenAI SDK和API知识问答、文档搜索和代码示例。",
      "name": "OpenAI SDK Knowledge Server"
    }
  }
}
  • 'url': MCP服务器的JSON-RPC端点地址。请替换为您的 Cloudflare Worker 实际部署的 URL。
  • 'Authorization': 您的MCP API密钥,必须以 'Bearer {您的密钥}' 的形式提供。该密钥需要通过MCP服务器的Web界面(见下文“基本使用方法”)登录并生成。
  • 'type': 指定MCP客户端使用的传输协议类型,此服务器支持 'streamable-http'。
  • 'name': 服务器的友好名称,用于客户端界面显示。
  • 'description': 服务器功能的简要描述。

基本使用方法

  1. 访问Web界面: 在浏览器中访问您的 MCP 服务器的 URL (例如 'https://your-worker-name.your-account.workers.dev')。
  2. 生成API密钥:
    • 点击“Login”按钮,通过 Google 账户登录。
    • 登录后,您会进入“My Page”或Web界面,在这里可以生成您的MCP API密钥。请务必妥善保管此密钥,因为它只会显示一次。
  3. 配置MCP客户端: 将您生成的API密钥和服务器URL配置到您支持 MCP 协议的LLM客户端中。
  4. LLM交互: LLM客户端即可通过调用 MCP 服务器提供的工具来获取 OpenAI SDK 知识:
    • 'answer_openai_questions(query: string, language?: string)': 获取关于 OpenAI SDK 或 API 的综合性答案。
    • 'list_openai_resources(query: string, language?: string)': 获取相关文档和代码片段的列表。
    • 'search(query: string)' (仅限 ChatGPT Deep Research 客户端): 用于搜索 OpenAI 知识库。
    • 'fetch(id: string)' (仅限 ChatGPT Deep Research 客户端): 用于获取特定文档的完整内容。
  5. 数据收集(可选,管理员功能): 如果您是管理员用户,可以登录 '/admin' 页面,手动触发从GitHub仓库和OpenAI社区论坛收集数据,以更新或扩展知识库。

信息

分类

AI与计算