聊天补全
/v1/chat/completions — OpenAI 兼容的聊天端点。参数为 model、messages、stream、temperature。支持 SSE 流式传输。提供 curl、Python(openai)和 Node 中的请求与响应示例。
OpenAI 兼容的聊天端点。适用于任何 OpenAI SDK,只需将 base_url 更改为 https://getvibeapi.com/v1。
请求正文参数
GetVibe 实现的是兼容的 Chat Completions 契约,而不是逐字节透传:它会检查访问权限、解析公共模型 id、应用限制,并可能规范化受支持的请求字段。响应和错误也会被规范化,不保证包含上游特有的字段或请求头。对于大多数任务,前三项 — model、messages 和 stream — 就足够了。
| 参数 | 类型 | 描述 |
|---|---|---|
modelreq. | string | 来自 catalog 的模型名称,例如 gpt-6.1-sol 或 claude-opus-5.5。 |
messagesreq. | array | 消息数组 { role, content }。角色:system、user、assistant。 |
stream | boolean | true — 通过 SSE 流式传输响应。 |
max_tokens | integer | 响应中的最大令牌数。我们建议至少设置为 64:如果值过小(例如 ≤ 16),模型可能会在第一个可见令牌之前达到限制(finish_reason: length),并返回空响应。如果你需要简短结果,请在提示词中提出要求,并为 max_tokens 留出余量。 |
temperature | number | 输出随机性,范围为 0–2。默认值为 1。 |
| 参数 | 类型 | 描述 |
|---|---|---|
top_p | numbermodel-dependent | 核采样(0–1)。temperature 的替代参数;不建议同时更改这两个参数。 |
top_k | numberClaude | Top-K 采样。仅限 Anthropic 模型。 |
seed | integerGPT | 固定结果以确保可复现。适用于 GPT 系列;在其他地方会被忽略。 |
stop | string | arraymodel-dependent | 停止序列:一个字符串或最多包含 4 个字符串的列表。 |
frequency_penalty | numberGPT · Claude | 按频率重复 token 的惩罚值(-2 至 2)。 |
presence_penalty | numberGPT · Claude | 已出现过的 token 的惩罚值(-2 至 2)。 |
logprobs | boolean— | 当前没有路由会返回对数概率:该参数会在分发前被移除,并在 x-getvibe-warnings 标头中报告(param_dropped:logprobs);请求不会被拒绝。 |
top_logprobs | integer— | 与 logprobs 一起被移除,并在 x-getvibe-warnings 中报告。 |
logit_bias | objectGPT | Token-ID → logit bias(-100 到 100)。 |
user | stringmodel-dependent | 最终用户标识符(向上游传递,用于速率限制跟踪)。 |
response_format | objectGPT · Claude | 强制将输出设为 JSON。了解更多 → |
tools / tool_choice | array / stringGPT · Claude | 函数调用。了解更多 → |
“Support”列中的徽章:GPT — 仅限 GPT 系列,Claude — 仅限 Anthropic 模型,GPT · Claude — 两个系列均支持,model-dependent — 请查看相应模型的文档。
各路由变体的参数支持情况
同一模型可以由不同路由提供(变体 :1、:2、……)。路由在价格、速度和支持的参数集方面有所不同。
| 参数 | 类型 | 描述 |
|---|---|---|
Default variant (:1) | basic | 完整的 OpenAI 参数集:temperature、top_p、seed、stop、penalties、logprobs、tools、response_format,以及包含 usage chunk 的流式传输。 |
Subscription variants (:2, :3…) | advanced | 参数集与基础参数集匹配,但路由使用不同的基础设施。个别参数可能不受支持,我们会在变体描述中说明这一点。 |
or-* variants | or-* | 通过独立的聚合器代理请求。参数支持取决于具体供应商。tool_choice: "required" 以及某些采样参数可能无法使用。 |
:1(默认)变体,或在 Models 页面上的变体说明中检查是否支持该参数。请求示例
curl https://getvibeapi.com/v1/chat/completions \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6.1-sol",
"messages": [
{"role": "user", "content": "Hello! Who are you?"}
]
}'响应示例
{
"id": "chatcmpl-...",
"object": "chat.completion",
"model": "gpt-6.1-sol",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hi! I'm an assistant available through GetVibe API."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 14,
"total_tokens": 26
}
}流式传输(SSE)
使用 "stream": true 时,响应会以 Server-Sent Events 流的形式返回:包含增量内容的 data: … 事件,并以 data: [DONE] 结束。
curl https://getvibeapi.com/v1/chat/completions \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6.1-sol",
"stream": true,
"messages": [{"role": "user", "content": "Count to three"}]
}'包含用量信息的最后一个分块
data: [DONE] 之前的最后一个块包含空的 choices: [] 和带有 token 统计信息的 usage 字段。请使用它进行计费,不要手动累加各个增量。
data: {"id":"chatcmpl-...","choices":[],"usage":{"prompt_tokens":42,"completion_tokens":87,"total_tokens":129},"model":"gpt-6.1-sol","object":"chat.completion.chunk"}
data: [DONE]每个可以估算成本的非流式响应都包含x-pv-cost-rub响应标头。默认情况下,流式响应体不包含pv_cost_rub;发送x-pv-cost: 1可将成本添加到该协议的最终 usage 事件中。这是尽力而为的估算;如需查看实际扣款,请参阅请求历史记录GET /v1/generations。
兼容性
该端点兼容 OpenAI SDK(Python、Node 等)、Codex CLI 和 Claude Code。Claude Code 通过 /v1/messages 工作,并使用 x-api-key header,详见 Messages and Responses。