使用说明
项目简介
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 的交互能力。
- 成本优化与风险分散: 可以灵活切换模型,优化成本,避免锁定单一供应商。
安装步骤
-
克隆仓库
git clone https://github.com/masaic-ai-platform/open-responses.git cd open-responses -
构建项目
./gradlew build -
运行服务器
./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与计算