Endpoints
Reasoning
Controle o orçamento, o esforço e a saída de raciocínio dos modelos de IA com o parâmetro reasoning, de forma unificada entre todos os provedores.
Teste no playgroundOs modelos de raciocínio pensam antes de responder: OpenAI GPT-5 e a série o, Claude com pensamento estendido, Gemini 2.5, DeepSeek R1, Qwen e outros. A api14 aceita um único parâmetro reasoning e o converte na configuração nativa de cada provedor. Os tokens de raciocínio são cobrados como tokens de saída.
Parâmetros da requisição
| Parâmetro | Tipo | Descrição |
|---|---|---|
reasoning.effort | string | "minimal", "low", "medium" ou "high". Usado pelos modelos OpenAI e Grok, e convertido em um orçamento de tokens para os demais. |
reasoning.max_tokens | integer | Um orçamento exato de tokens para o raciocínio. Usado por Anthropic, Gemini e Qwen. Use um ou outro, não os dois. |
reasoning.exclude | boolean | O modelo ainda raciocina, mas o texto do raciocínio não é incluído na resposta. |
reasoning.enabled | boolean | Ativa o raciocínio com as configurações padrão. |
include_reasoning | boolean | Chave legada, equivalente a reasoning: {} ou a reasoning.exclude: false. |
{
"model": "anthropic/claude-sonnet-4.5",
"messages": [{ "role": "user", "content": "How many r's are in 'strawberry'? Think carefully." }],
"reasoning": { "max_tokens": 2000 },
"max_tokens": 4000
}
max_tokens precisa ser maior que o orçamento de raciocínio, porque ele cobre tanto o raciocínio quanto a resposta.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.chat.completions.create({
"model": "openai/gpt-5-mini",
"messages": [
{
"role": "user",
"content": "Explain vector databases in two sentences."
}
],
"reasoning": {
"effort": "high"
}
});
console.log(result.choices[0].message.content);
Resposta
O texto do raciocínio é retornado em message.reasoning, separado da resposta. Alguns modelos também retornam reasoning_details estruturados:
{
"id": "gen-1760000000-think",
"model": "anthropic/claude-sonnet-4.5",
"choices": [
{
"index": 0,
"finish_reason": "stop",
"message": {
"role": "assistant",
"content": "There are 3 r's in \"strawberry\".",
"reasoning": "s-t-r-a-w-b-e-r-r-y: r at position 3, 8 and 9..."
}
}
],
"usage": {
"prompt_tokens": 22,
"completion_tokens": 312,
"total_tokens": 334,
"completion_tokens_details": { "reasoning_tokens": 290 },
"cost": 0.004746
}
}
No streaming, o raciocínio chega em fragmentos delta.reasoning antes dos fragmentos delta.content.
Observações
- Os modelos da série o e GPT-5 da OpenAI não retornam o texto do raciocínio, mas os
reasoning_tokenssão cobrados mesmo assim. - Com Claude, em uso de ferramentas em vários turnos, devolva
reasoning_detailssem alterações na mensagem do assistente para que o modelo possa continuar raciocinando. - Alguns modelos (por exemplo,
deepseek/deepseek-r1) sempre raciocinam. Nesses,effortnão tem efeito. - Um esforço maior custa mais e demora mais. Acompanhe
completion_tokens_details.reasoning_tokens.
Erros
Os mesmos de Chat completions. Um orçamento pequeno ou grande demais para um modelo pode retornar um 400 do provedor. Veja Erros.