Chat Completions
/v1/chat/completions — o endpoint de chat compatível com OpenAI. Parâmetros model, messages, stream, temperature. Streaming via SSE. Exemplos de requisições e respostas em curl, Python (openai) e Node.
O endpoint de chat compatível com OpenAI. Funciona com qualquer SDK da OpenAI; basta alterar base_url para https://getvibeapi.com/v1.
Parâmetros do corpo da solicitação
A GetVibe implementa um contrato compatível com Chat Completions, não um pass-through byte a byte: ela verifica o acesso, resolve o id de modelo público, aplica limites e pode normalizar campos de solicitação compatíveis. Respostas e erros também são normalizados e não garantem campos ou headers específicos do upstream. Para a maioria das tarefas, os três primeiros — model, messages e stream — são suficientes.
| Parâmetro | Tipo | Descrição |
|---|---|---|
modelreq. | string | Um nome de modelo do catálogo, por exemplo gpt-6.1-sol ou claude-opus-5.5. |
messagesreq. | array | Array de mensagens { role, content }. Funções: system, user, assistant. |
stream | boolean | true — transmite a resposta por SSE. |
max_tokens | integer | Máximo de tokens na resposta. Recomendamos pelo menos 64: com um valor muito baixo (por exemplo, ≤ 16), o modelo pode atingir o limite (finish_reason: length) antes do primeiro token visível e retornar uma resposta vazia. Se precisar de um resultado curto, peça isso no prompt e mantenha max_tokens com margem. |
temperature | number | Aleatoriedade da saída, 0–2. Padrão 1. |
| Parâmetro | Tipo | Descrição |
|---|---|---|
top_p | numbermodel-dependent | Amostragem de núcleo (0–1). Alternativa à temperatura; não é recomendável alterar ambas ao mesmo tempo. |
top_k | numberClaude | Amostragem Top-K. Somente modelos Anthropic. |
seed | integerGPT | Fixa o resultado para garantir a reprodutibilidade. Série GPT; ignorado em outros casos. |
stop | string | arraymodel-dependent | Sequência de parada: uma string ou uma lista de até 4 strings. |
frequency_penalty | numberGPT · Claude | Penalidade por repetir tokens com base na frequência (-2 a 2). |
presence_penalty | numberGPT · Claude | Penalidade para tokens já vistos (-2 a 2). |
logprobs | boolean— | Nenhuma rota atual retorna log-probabilities: o parâmetro é removido antes do dispatch e informado no cabeçalho x-getvibe-warnings (param_dropped:logprobs); a solicitação não é recusada. |
top_logprobs | integer— | Removido junto com logprobs e informado em x-getvibe-warnings. |
logit_bias | objectGPT | ID do token → viés do logit (-100 a 100). |
user | stringmodel-dependent | Identificador do usuário final (enviado upstream para rastreamento de limites de taxa). |
response_format | objectGPT · Claude | Force a saída para JSON. Saiba mais → |
tools / tool_choice | array / stringGPT · Claude | Chamada de funções. Saiba mais → |
Selos na coluna “Suporte”: GPT — apenas séries GPT, Claude — apenas modelos Anthropic, GPT · Claude — ambas as famílias, dependente do modelo — consulte a documentação desse modelo.
Suporte a parâmetros por variante de rota
O mesmo modelo pode ser servido por rotas diferentes (variantes :1, :2, …). As rotas diferem em preço, velocidade e conjunto de parâmetros compatíveis.
| Parâmetro | Tipo | Descrição |
|---|---|---|
Default variant (:1) | basic | Conjunto completo de parâmetros da OpenAI: temperature, top_p, seed, stop, penalties, logprobs, tools, response_format, streaming com um bloco de uso. |
Subscription variants (:2, :3…) | advanced | O conjunto de parâmetros corresponde ao básico, mas a rota usa uma infraestrutura diferente. Parâmetros individuais podem não ser compatíveis; indicamos isso na descrição da variante. |
or-* variants | or-* | Encaminha a solicitação por meio de um agregador separado. O suporte aos parâmetros depende do provedor específico. tool_choice: "required" e alguns parâmetros de amostragem podem não funcionar. |
:1 (padrão) ou verifique o suporte na descrição da variante na página Models.Exemplo de solicitação
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?"}
]
}'Exemplo de resposta
{
"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
}
}Streaming (SSE)
Com "stream": true, a resposta vem como um fluxo de Server-Sent Events: eventos data: … com deltas, terminando com 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"}]
}'Bloco final com uso
O último trecho antes de data: [DONE] tem choices: [] vazio e um campo usage com estatísticas de tokens. Use-o para a cobrança; não some os deltas manualmente.
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]Toda resposta sem stream cujo custo possa ser estimado inclui o header de resposta x-pv-cost-rub. Os corpos de streaming não contêm pv_cost_rub por padrão; envie x-pv-cost: 1 para adicionar o custo ao evento de uso final desse protocolo. Esta é uma estimativa de melhor esforço; para o débito efetivo, consulte o histórico de solicitações GET /v1/generations.
Compatibilidade
O endpoint é compatível com os SDKs da OpenAI (Python, Node e outros), Codex CLI e Claude Code. O Claude Code funciona por meio de /v1/messages com o cabeçalho x-api-key — consulte Mensagens e respostas.