> ## 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.

# Modèles de raisonnement

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>;
  }
};

## Présentation

Les modèles de raisonnement sont des modèles de langage avancés optimisés pour les tâches complexes de résolution de problèmes. En générant des étapes de raisonnement détaillées (chaîne de pensée), ils améliorent la précision des réponses dans les scénarios analytiques.

### Cas d’utilisation typiques

* **Résolution de problèmes complexes** : Convient aux tâches nécessitant une logique étape par étape, comme le raisonnement mathématique ou scientifique.
* **Systèmes d’aide à la décision** : Aide à expliquer la logique derrière les conclusions en fournissant des processus de raisonnement détaillés.
* **Éducation et formation** : Aide les apprenants à comprendre des concepts complexes en présentant clairement les processus de dérivation.

***

## Installation et configuration

Avant d’utiliser les modèles de raisonnement, assurez-vous que le dernier SDK OpenAI est installé :

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

***

## Utilisation de l’API

Utilisez l’endpoint `/chat/completions` pour invoquer les modèles de raisonnement.

### Paramètres de requête

* `max_tokens` : Définit le nombre maximal de tokens que le modèle peut renvoyer.
* `temperature` : Recommandé entre 0,5 et 0,7 (suggestion : 0,6) pour équilibrer créativité et logique.
* `top_p` : La valeur recommandée est 0,95.

***

### Exemple de code

#### Réponse 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)
```

#### Réponse sans 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)
```

***

## Gestion du contexte

Les sorties de raisonnement ne sont pas automatiquement reportées au tour de dialogue suivant. Vous devez maintenir manuellement l’historique des messages :

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

***

## Modèles pris en charge

Les modèles de raisonnement suivants sont actuellement pris en charge sur la plateforme Novita :

<ReasoningModels />

***

## Facturation

* La facturation est basée sur le nombre de tokens, à la fois pour l’entrée et pour la sortie.
* Veuillez consulter la page de tarification de chaque modèle pour connaître les règles de facturation spécifiques et les détails de conversion des tokens.

***

## Remarques et bonnes pratiques

* Évitez de placer des instructions de raisonnement dans le message `system`. Rendez plutôt l’intention explicite dans le message `user`.
* Pour les tâches mathématiques, donnez des instructions claires au modèle, par exemple : « Veuillez raisonner étape par étape et fournir une réponse finale. »
* Pour empêcher le modèle de sauter des étapes de raisonnement, envisagez de demander un saut de ligne avant la réponse finale.
