Guías
Razonamiento
Pide al modelo que piense antes de responder y lee el razonamiento que devuelve.
Cada modelo lista los niveles de esfuerzo que acepta en capabilities.reasoning_efforts (consulta Modelos). Más esfuerzo consume más tokens de salida, que se cobran a la tarifa de salida. Si omites el campo, el modelo usa su valor por defecto.
| API | Campo |
|---|---|
| Chat completions | reasoning_effort |
| Responses | reasoning.effort |
| Messages | thinking: {"type": "enabled", "budget_tokens": N} o {"type": "adaptive"} con output_config.effort |
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)En chat completions y en Responses, un nivel que el modelo no lista devuelve 400 invalid_request. Messages asigna thinking y output_config.effort al nivel más cercano que tenga el modelo: un presupuesto de 16000 tokens o más es high, de 4000 o más es medium, por debajo es low, y adaptive es medium.
El texto del razonamiento vuelve como reasoning_content en chat completions, como items reasoning en Responses y como bloques thinking en Messages. Cuando reenvías la conversación, el razonamiento de los turnos anteriores se descarta.