Skip to main content
GoModel 提供兼容 OpenAI 和兼容 Anthropic 的 API、提供商原生透传,以及一组运维端点。 管理和控制台路由请参阅单独的 管理端点 文档。 请求和响应的详细信息请参阅各专题指南: Responses API、Conversations API、 Anthropic Messages API、 Audio API、Images API、 Decisions API、System One API 以及 Usage API。

兼容 OpenAI 的 API

实时翻译会话

语音翻译模型(OpenAI gpt-realtime-translate)运行在独立的会话接口上,因此网关也对其进行了镜像。 连接到 /v1/realtime/translations(或 /v1/realtime?intent=translation,二者为同一会话),并在 socket 打开后设置目标语言:
翻译会话使用自己的事件名称(输入为 session.input_audio_buffer.append, 输出为 session.output_audio.delta 和 session.output_transcript.delta), 并接受 24 kHz PCM16 音频。帧会被原样转发,因此任何基于提供商翻译 API 编写的客户端都无需修改即可使用。 目前翻译仅支持 OpenAI 接口。如果将翻译会话路由到不支持翻译的提供商,请求会返回 400 错误,而不会悄悄地改为打开一个普通的对话会话。 这类会话不会上报用量事件,因此网关会根据其转发的输入音频,按模型每秒的输入单价计费。 WebRTC 翻译通话除外:其媒体流不经过网关,因此不会被计量。

实时转录会话

转录会话(/v1/realtime?intent=transcription)在 session.update 中选择模型,而不是在 URL 中指定; model 查询参数用于路由请求,网关会将会话内的模型选择固定为该模型。 大多数转录模型会在其 conversation.item.input_audio_transcription.completed 事件中上报用量(Token 数,或对于 whisper 类模型为秒数), 并以此为会话计费。如果模型在该事件中未上报用量,网关会回退为根据其转发的输入音频,按每秒输入单价计费。 仅当会话自身未上报任何用量时才会使用这种回退方式,因此同一会话绝不会被重复计费。 与翻译相同,WebRTC 通话的媒体流不经过网关,因此不会被计量。

兼容 Anthropic 的 API

Decisions API

在配置了 openai、jev 或 openrouter 提供商时可用;请参阅 Decisions API。

System One API

在配置了 jev 或 openrouter 提供商时可用;请参阅 System One API。

网关扩展

密钥验证

GET /v1/auth/verify 让位于网关前方的服务无需持有密钥列表副本即可校验 API 密钥。 该端点默认禁用;可通过 AUTH_VERIFY_ENABLED=true(server.auth_verify_enabled)启用。 它不是 /admin 路由,因此在禁用 Admin API 时依然可用。
未知、已禁用或已过期的密钥会被网关的常规认证以 401 拒绝,因此返回 200 即表示该密钥认证通过。 method 表示接受该密钥的机制:api_key 是存储在数据库中的托管密钥, master_key 是来自 GOMODEL_MASTER_KEY 的引导密钥。key_id 和 user_path 仅在托管密钥绑定了相应值时才会出现。
当网关允许未认证的调用方访问时(完全未配置认证,或某个路由被扩展排除在认证之外), 没有可供确认的密钥,此时该端点返回 200 和 {"valid": false, "method": "none"},而不会声称密钥有效。 基于状态码判断的使用方(例如 Caddy 的 forward_auth)会将其视为允许访问, 这与网关自身对这些请求的处理方式一致。

提供商透传

MCP 网关

聚合已配置上游 MCP 服务器的 Streamable-HTTP MCP(Model Context Protocol)端点 (需启用 MCP_ENABLED,默认开启)。请参阅 MCP 网关。

管理端点

管理 REST 和控制台路由(/admin/*)请参阅 管理端点。

运维端点

最后修改于 2026年10月24日