# Raciocínio

> Peça ao modelo para pensar antes de responder e leia o raciocínio que ele devolve.


Cada modelo lista os níveis de esforço que aceita em `capabilities.reasoning_efforts` (veja [Modelos](/pt-br/getting-started/models)). Mais esforço usa mais tokens de saída, cobrados pela tarifa de saída. Se você omitir o campo, o modelo usa o padrão dele.

| API | Campo |
|---|---|
| Chat completions | `reasoning_effort` |
| Responses | `reasoning.effort` |
| Messages | `thinking: {"type": "enabled", "budget_tokens": N}` ou `{"type": "adaptive"}` com `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)
```

Em chat completions e no Responses, um nível que o modelo não lista retorna `400 invalid_request`. O Messages mapeia `thinking` e `output_config.effort` para o nível mais próximo que o modelo tem: um orçamento de 16000 tokens ou mais é high, de 4000 ou mais é medium, abaixo disso é low, e `adaptive` é medium.

O texto do raciocínio volta como `reasoning_content` em chat completions, como itens `reasoning` no Responses e como blocos `thinking` no Messages. Quando você reenvia a conversa, o raciocínio dos turnos anteriores é descartado.

## Próximos passos

- [Boas práticas de custo](/pt-br/guides/cost)
