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

# Модели рассуждений

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.jiekouRemoteData.llmModels.status === 'loaded') {
        const modelList = window.jiekouRemoteData.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)">展示更多</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>;
  }
};

## Обзор возможностей

Модели рассуждений — это продвинутые языковые модели, оптимизированные для решения сложных задач и задач логического вывода. Они повышают точность решения задач за счет вывода подробных шагов рассуждения (цепочки рассуждений).

### Типичные сценарии применения

* **Решение сложных задач**: подходит для сценариев, где требуется пошаговый вывод и четкие логические этапы, например в математике и научных рассуждениях.
* **Системы поддержки принятия решений**: предоставляют подробный процесс рассуждения для поддержки анализа решений и помогают понять логику, лежащую в основе решения.
* **Образование и обучение**: помогают пользователям изучать и понимать сложные знания, предоставляя подробный процесс вывода.

## Установка и подготовка

Перед использованием моделей рассуждений убедитесь, что установлена последняя версия OpenAI SDK:

```bash theme={null}
pip install -U openai
```

## Способ вызова API

Используйте модели рассуждений через вызов интерфейса `/chat/completions`.

### Описание параметров запроса

* `max_tokens`: задает максимальное количество token для вывода модели.
* `temperature`: рекомендуется установить значение от 0.5 до 0.7 (рекомендуется 0.6), чтобы сбалансировать креативность и логичность вывода.
* `top_p`: рекомендуется установить значение 0.95.

### Пример кода запроса

#### Запрос с потоковым выводом

```python theme={null}
from openai import OpenAI

client = OpenAI(api_key="YOUR_API_KEY", base_url="https://api.highwayapi.ai/openai")
messages = [
    {"role": "user", "content": "Объясни второй закон Ньютона."}
]

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("Итоговый ответ:", content)
print("Ход рассуждений:", reasoning_content)
```

#### Запрос без потокового вывода

```python theme={null}
response = client.chat.completions.create(
    model="deepseek/deepseek-r1",
    messages=[
        {"role": "user", "content": "Что такое парниковый эффект? Как его смягчить?"}
    ],
    stream=False,
    max_tokens=4096
)

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

print("Итоговый ответ:", content)
print("Ход рассуждений:", reasoning_content)
```

## Управление контекстом

Содержимое рассуждений, возвращаемое моделью, не добавляется автоматически к следующему раунду диалога. Пользователю необходимо вручную управлять историей диалога:

```python theme={null}
messages.append({"role": "assistant", "content": content})
messages.append({"role": "user", "content": "Продолжи объяснять решение."})
```

## Список поддерживаемых моделей

<ReasoningModels />

## Способ тарификации

* Тарификация выполняется на основе количества token во входных и выходных данных.
* Конкретные тарифы и правила конвертации см. на странице сведений о модели.

## Примечания и лучшие практики

* Не добавляйте инструкции по рассуждению в сообщение `system`; следует напрямую указывать инструкции в сообщении `user`.
* В математических задачах четко формулируйте требования, например: «Пожалуйста, рассуждай пошагово и явно укажи итоговый ответ».
* Чтобы модель не пропускала этап рассуждения, рекомендуется принудительно добавлять символ перевода строки перед выводом.
