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

# Reasoning-Modelle

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

## Überblick

Reasoning-Modelle sind fortschrittliche Sprachmodelle, die für komplexe Problemlösungsaufgaben optimiert sind. Durch die Generierung detaillierter Denkschritte (Chain-of-Thought) verbessern sie die Genauigkeit von Antworten in analytischen Szenarien.

### Typische Anwendungsfälle

* **Komplexe Problemlösung**: Geeignet für Aufgaben, die schrittweise Logik erfordern, z. B. mathematisches oder wissenschaftliches Schlussfolgern.
* **Entscheidungsunterstützungssysteme**: Hilft dabei, die Logik hinter Schlussfolgerungen zu erklären, indem detaillierte Denkprozesse bereitgestellt werden.
* **Bildung und Training**: Unterstützt Lernende dabei, komplexe Konzepte zu verstehen, indem Herleitungsprozesse klar dargestellt werden.

***

## Installation & Einrichtung

Stellen Sie vor der Verwendung von Reasoning-Modellen sicher, dass das neueste OpenAI SDK installiert ist:

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

***

## API-Nutzung

Verwenden Sie den `/chat/completions`-Endpoint, um Reasoning-Modelle aufzurufen.

### Anfrageparameter

* `max_tokens`: Legt die maximale Anzahl von Tokens fest, die das Modell zurückgeben kann.
* `temperature`: Empfohlen zwischen 0.5 und 0.7 (Vorschlag: 0.6), um Kreativität und Logik auszubalancieren.
* `top_p`: Empfohlener Wert ist 0.95.

***

### Beispielcode

#### Streaming-Antwort

```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)
```

#### Nicht-Streaming-Antwort

```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)
```

***

## Kontextverwaltung

Reasoning-Ausgaben werden nicht automatisch in die nächste Dialogrunde übernommen. Sie müssen den Nachrichtenverlauf manuell verwalten:

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

***

## Unterstützte Modelle

Die folgenden Reasoning-Modelle werden derzeit auf der Novita-Plattform unterstützt:

<ReasoningModels />

***

## Abrechnung

* Die Abrechnung basiert auf der Anzahl der Tokens sowohl für Eingabe als auch Ausgabe.
* Bitte lesen Sie die Preisseite des jeweiligen Modells für spezifische Abrechnungsregeln und Details zur Token-Umrechnung.

***

## Hinweise & Best Practices

* Vermeiden Sie es, Reasoning-Anweisungen in der `system`-Nachricht zu platzieren. Machen Sie stattdessen die Absicht in der `user`-Nachricht explizit.
* Weisen Sie das Modell bei mathematischen Aufgaben klar an, z. B.: „Bitte denke Schritt für Schritt nach und gib eine endgültige Antwort.“
* Um zu verhindern, dass das Modell Denkschritte überspringt, sollten Sie erwägen, vor der endgültigen Antwort einen Zeilenumbruch anzufordern.
