> ## Documentation Index
> Fetch the complete documentation index at: https://novita.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Modelos de razonamiento

export const ReasoningModels = () => {
  if (typeof document === "undefined") {
    return null;
  } else {
    let attempts = 0;
    const maxAttempts = 50;
    const INIT_DISPLAY_COUNT = 3;
    const interval = setInterval(() => {
      const clientComponent = document.getElementById("reasoning-models");
      if (clientComponent && window.novitaRemoteData.llmModels.status === 'loaded') {
        const modelList = window.novitaRemoteData.llmModels.data.filter(model => {
          return (model.features || []).includes('reasoning');
        });
        let displayModels = modelList.slice(0, INIT_DISPLAY_COUNT).map(model => {
          return `<li><span class="model-id-item">${model.id}</span></li>`;
        }).join('');
        let showMoreButton = '';
        if (modelList.length > INIT_DISPLAY_COUNT) {
          showMoreButton = `<button id="show-more-reasoning-model-btn" style="margin-left: 32px; color: rgb(40 116 255)">View More</button>`;
        }
        clientComponent.innerHTML = `
          <ul>${displayModels}</ul>
          ${showMoreButton}
        `;
        document.getElementById('show-more-reasoning-model-btn')?.addEventListener('click', () => {
          clientComponent.innerHTML = `
            <ul>${modelList.map(model => {
            return `<li><span class="model-id-item">${model.id}</span></li>`;
          }).join('')}</ul>
          `;
        });
        clearInterval(interval);
      }
      attempts++;
      if (attempts >= maxAttempts) {
        clearInterval(interval);
      }
    }, 200);
    return <div id="reasoning-models"></div>;
  }
};

## Descripción general

Los modelos de razonamiento son modelos de lenguaje avanzados optimizados para tareas complejas de resolución de problemas. Al generar pasos de razonamiento detallados (cadena de pensamiento), mejoran la precisión de las respuestas en escenarios analíticos.

### Casos de uso típicos

* **Resolución de problemas complejos**: Adecuados para tareas que requieren lógica paso a paso, como razonamiento matemático o científico.
* **Sistemas de apoyo a la toma de decisiones**: Ayudan a explicar la lógica detrás de las conclusiones proporcionando procesos de razonamiento detallados.
* **Educación y formación**: Ayudan a los estudiantes a comprender conceptos complejos presentando claramente los procesos de derivación.

***

## Instalación y configuración

Antes de usar modelos de razonamiento, asegúrate de que esté instalado el SDK de OpenAI más reciente:

```bash theme={"system"}
pip install -U openai
```

***

## Uso de la API

Usa el endpoint `/chat/completions` para invocar modelos de razonamiento.

### Parámetros de la solicitud

* `max_tokens`: Establece el número máximo de tokens que el modelo puede devolver.
* `temperature`: Se recomienda entre 0.5 y 0.7 (sugerido: 0.6) para equilibrar creatividad y lógica.
* `top_p`: El valor recomendado es 0.95.

***

### Código de ejemplo

#### Respuesta en streaming

```python theme={"system"}
from openai import OpenAI

client = OpenAI(api_key="YOUR_API_KEY", base_url="https://api.novita.ai/openai")
messages = [
    {"role": "user", "content": "Explain Newton's Second Law."}
]

response = client.chat.completions.create(
    model="deepseek/deepseek-r1",
    messages=messages,
    stream=True,
    max_tokens=4096
)

content = ""
reasoning_content = ""
for chunk in response:
    if chunk.choices[0].delta.content:
        content += chunk.choices[0].delta.content
    if chunk.choices[0].delta.reasoning_content:
        reasoning_content += chunk.choices[0].delta.reasoning_content

print("Final Answer:", content)
print("Reasoning Steps:", reasoning_content)
```

#### Respuesta sin streaming

```python theme={"system"}
response = client.chat.completions.create(
    model="deepseek/deepseek-r1",
    messages=[
        {"role": "user", "content": "What is the greenhouse effect? How can it be mitigated?"}
    ],
    stream=False,
    max_tokens=4096
)

content = response.choices[0].message.content
reasoning_content = response.choices[0].message.reasoning_content

print("Final Answer:", content)
print("Reasoning Steps:", reasoning_content)
```

***

## Gestión del contexto

Las salidas de razonamiento no se trasladan automáticamente a la siguiente ronda de diálogo. Debes mantener manualmente el historial de mensajes:

```python theme={"system"}
messages.append({"role": "assistant", "content": content})
messages.append({"role": "user", "content": "Please continue explaining the solution."})
```

***

## Modelos compatibles

Actualmente, los siguientes modelos de razonamiento son compatibles con la plataforma Novita:

<ReasoningModels />

***

## Facturación

* La facturación se basa en el número de tokens tanto de entrada como de salida.
* Consulta la página de precios de cada modelo para conocer las reglas específicas de facturación y los detalles de conversión de tokens.

***

## Notas y prácticas recomendadas

* Evita colocar instrucciones de razonamiento en el mensaje `system`. En su lugar, haz explícita la intención en el mensaje `user`.
* Para tareas matemáticas, instruye claramente al modelo, por ejemplo: “Please reason step by step and provide a final answer.”
* Para evitar que el modelo omita pasos de razonamiento, considera pedir una nueva línea antes de la respuesta final.
