使用说明

项目简介

OpenResponses API 旨在通过一个统一的、兼容 OpenAI Responses API 的接口,让开发者能够轻松地使用来自不同 LLM 提供商(如 OpenAI, Groq, Claude 等)的模型。它不仅简化了多模型集成,还内置了工具支持,扩展了 LLM 应用的能力。该项目可以被视为一个有效的 MCP 服务器实现,因为它提供了资源管理(通过工具集成),工具执行(内置工具支持),以及 Prompt 模板的概念(虽然在文档中没有显式提及Prompt模板,但作为LLM API网关,它天然支持和处理各种Prompt)。

主要功能点

  • 多 LLM 提供商支持: 支持通过统一接口访问 OpenAI, Groq, Claude 等多种 LLM 模型。
  • 内置工具支持: 集成了多种实用工具,如 Brave Web Search, GitHub Repositories Search, Claude Think Tool,扩展 LLM 的能力。
  • OpenAI API 兼容: 遵循 OpenAI Responses API 结构,方便现有基于 OpenAI API 的应用迁移和使用。
  • 流式响应: 支持流式响应,提升用户体验。
  • 函数调用: 支持函数调用功能,增强 LLM 的交互能力。
  • 成本优化与风险分散: 可以灵活切换模型,优化成本,避免锁定单一供应商。

安装步骤

  1. 克隆仓库

    git clone https://github.com/masaic-ai-platform/open-responses.git
    cd open-responses
  2. 构建项目

    ./gradlew build
  3. 运行服务器

    ./gradlew bootRun

    或使用 Docker 运行:

    docker build -t openresponses .
    docker run -p 8080:8080 -d openresponses

服务器配置

对于 MCP 客户端,需要配置连接到 OpenResponses 服务器的信息。以下是一个示例配置,假设服务器运行在 'http://localhost:8080':

{
  "serverName": "OpenResponsesServer",
  "command": "curl",
  "args": [
    "http://localhost:8080/v1/responses",
    "-X", "POST",
    "-H", "Content-Type: application/json",
    "-H", "Authorization: Bearer YOUR_API_KEY",
    "-d", "@-"
  ]
}

参数注释:

  • '"serverName"': 服务器名称,可以自定义,例如 "OpenResponsesServer"。
  • '"command"': 与服务器通信的命令,这里使用 'curl' 作为示例,实际使用中 MCP 客户端应根据自身能力选择合适的通信方式和命令,如果 MCP 客户端支持直接 HTTP 连接,则无需配置此项。
  • '"args"': 传递给 'command' 的参数列表,用于构造 HTTP POST 请求。
    • '"http://localhost:8080/v1/responses"': OpenResponses API 的 '/v1/responses' 端点,用于创建模型响应。
    • '"-X", "POST"': 指定 HTTP 请求方法为 POST。
    • '"-H", "Content-Type: application/json"': 设置请求头 Content-Type 为 application/json。
    • '"-H", "Authorization: Bearer YOUR_API_KEY"': 设置认证信息,需要替换 'YOUR_API_KEY' 为实际的 API 密钥。OpenResponses 需要下游 LLM 供应商的 API Key,具体使用哪个供应商的 Key 取决于请求中 'x-model-provider' Header 的设置。
    • '"-d", "@-"': 指定请求数据从标准输入读取,MCP 客户端需要将符合 OpenResponses API 格式的 JSON 请求体通过标准输入传递给 'curl' 命令。

注意: 上述配置仅为示例,展示了如何通过 'curl' 命令与 OpenResponses 服务器的 '/v1/responses' 端点进行交互。 实际的 MCP 客户端可能需要根据其具体实现和 OpenResponses API 的详细文档进行更精确的配置。 此外,OpenResponses 的服务器配置可能还包括环境变量 'MCP_SERVER_CONFIG_FILE_PATH', 'MASAIC_MAX_TOOL_CALLS', 'MASAIC_MAX_STREAMING_TIMEOUT',这些环境变量用于配置服务器自身的行为,而非 MCP 客户端连接服务器的配置。MCP 客户端主要关注如何与 '/v1/responses' 等 API 端点进行通信。

基本使用方法

通过 HTTP POST 请求 '/v1/responses' 端点,并按照 OpenAI Completion API 的格式传递请求参数,即可使用 OpenResponses API。

示例请求 (使用 Brave Web Search 工具):

curl --location 'http://localhost:8080/v1/responses' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_API_KEY' \
--data '{
    "model": "your-model",
    "stream": false,
    "tools": [
        {
            "type": "brave_web_search"
        }
    ],
    "input": [
        {
            "role": "user",
            "content": "What are the latest developments in AI?"
        }
    ]
}'

请参考仓库文档和示例代码,了解更多 API 使用细节和参数说明。

信息

分类

AI与计算