Endpoint
Reasoning
Controlla budget, impegno e output del ragionamento dei modelli con reasoning usando il parametro reasoning, e leggi i token di ragionamento.
Provalo nel playgroundI modelli con ragionamento riflettono prima di rispondere: OpenAI GPT-5 e la serie o, Claude con pensiero esteso, Gemini 2.5, DeepSeek R1, Qwen e altri. api14 accetta un unico parametro reasoning e lo converte nell'impostazione nativa di ogni fornitore. I token di ragionamento vengono fatturati come token di output.
Parametri della richiesta
| Parametro | Tipo | Descrizione |
|---|---|---|
reasoning.effort | string | "minimal", "low", "medium" o "high". Usato dai modelli OpenAI e Grok, e convertito in un budget di token per gli altri. |
reasoning.max_tokens | integer | Un budget di token esatto per il ragionamento. Usato da Anthropic, Gemini e Qwen. Usate questo oppure effort, non entrambi. |
reasoning.exclude | boolean | Il modello ragiona comunque, ma il testo del ragionamento viene omesso dalla risposta. |
reasoning.enabled | boolean | Attiva il ragionamento con le impostazioni predefinite. |
include_reasoning | boolean | Interruttore legacy, equivalente a reasoning: {} o 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 deve essere maggiore del budget di ragionamento, perché comprende sia il ragionamento sia la risposta.
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);
Risposta
Il testo del ragionamento viene restituito in message.reasoning, separato dalla risposta. Alcuni modelli restituiscono anche reasoning_details strutturati:
{
"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
}
}
Con lo streaming, il ragionamento arriva in blocchi delta.reasoning prima dei blocchi delta.content.
Note
- I modelli della serie o di OpenAI e GPT-5 non restituiscono il testo del loro ragionamento, ma i
reasoning_tokensvengono comunque addebitati. - Con Claude e l'uso di strumenti su più turni, rimandate
reasoning_detailsinvariati nel messaggio dell'assistente, così il modello può proseguire il ragionamento. - Alcuni modelli (ad esempio
deepseek/deepseek-r1) ragionano sempre. Per questieffortnon ha effetto. - Un impegno maggiore costa di più e richiede più tempo. Tenete d'occhio
completion_tokens_details.reasoning_tokens.
Errori
Gli stessi di Chat completions. Un budget troppo piccolo o troppo grande per un modello può restituire un 400 dal fornitore. Vedi Errori.