# Ragionamento

> Chiedi al modello di ragionare prima di rispondere e leggi il ragionamento che restituisce.


Ogni modello elenca i livelli che accetta in `capabilities.reasoning_efforts` (vedi [Modelli](/it/getting-started/models)). Un livello più alto usa più token di output, che si pagano alla tariffa di output. Se ometti il campo, il modello usa il suo predefinito.

| API | Campo |
|---|---|
| Chat completions | `reasoning_effort` |
| Responses | `reasoning.effort` |
| Messages | `thinking: {"type": "enabled", "budget_tokens": N}` o `{"type": "adaptive"}` con `output_config.effort` |

```python test
import os
from openai import OpenAI

client = OpenAI(base_url="https://api.notholy.com/v1", api_key=os.environ["NOTHOLY_API_KEY"])

r = client.chat.completions.create(
    model="notholy-specter",
    reasoning_effort="high",
    messages=[{"role": "user", "content": "Is a JWT signed with alg none ever acceptable? Answer in one line."}],
)
print(r.choices[0].message.content)
```

Nelle chat completions e in Responses, un livello che il modello non elenca restituisce `400 invalid_request`. Messages porta `thinking` e `output_config.effort` al livello più vicino che il modello ha: un budget di 16000 token o più è high, 4000 o più è medium, meno è low, e `adaptive` è medium.

Il testo del ragionamento torna come `reasoning_content` nelle chat completions, come elementi `reasoning` in Responses e come blocchi `thinking` in Messages. Quando rimandi la conversazione, il ragionamento dei turni precedenti viene scartato.

## Prossimi passi

- [Contenere i costi](/it/guides/cost)
