Usiamo i cookie. Cookie e memoria del browser ti mantengono connesso e ricordano le tue preferenze. Con il tuo consenso misuriamo anche come viene usato il sito. Puoi in qualsiasi momento. Consulta la nostra cookie policy.

Reasoning

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 playground

I 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

ParametroTipoDescrizione
reasoning.effortstring"minimal", "low", "medium" o "high". Usato dai modelli OpenAI e Grok, e convertito in un budget di token per gli altri.
reasoning.max_tokensintegerUn budget di token esatto per il ragionamento. Usato da Anthropic, Gemini e Qwen. Usate questo oppure effort, non entrambi.
reasoning.excludebooleanIl modello ragiona comunque, ma il testo del ragionamento viene omesso dalla risposta.
reasoning.enabledbooleanAttiva il ragionamento con le impostazioni predefinite.
include_reasoningbooleanInterruttore 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_tokens vengono comunque addebitati.
  • Con Claude e l'uso di strumenti su più turni, rimandate reasoning_details invariati nel messaggio dell'assistente, così il modello può proseguire il ragionamento.
  • Alcuni modelli (ad esempio deepseek/deepseek-r1) ragionano sempre. Per questi effort non 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.