88API88API
AI-приложенияAPIПомощь и поддержка

Формат рассуждения Deepseek (Содержание рассуждений)

Официальная документация

📝 Введение

Deepseek-reasoner — это модель рассуждения, запущенная DeepSeek. Прежде чем выдать окончательный ответ, модель сначала выводит цепочку мыслей, чтобы повысить точность окончательного ответа. API открывает пользователям содержимое цепочки глубокого поиска и рассуждения для просмотра, отображения и обработки.

💡 Пример запроса

Базовый текстовый разговор ✅

curl https://api.deepseek.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $API_KEY" \
  -d '{
    "model": "deepseek-reasoner",
    "messages": [
      {
        "role": "user",
        "content": "9.11 and 9.8, which is greater?"
      }
    ],
    "max_tokens": 4096
  }'

Пример ответа:

{
  "id": "chatcmpl-123",
  "object": "chat.completion",
  "created": 1677652288,
  "model": "deepseek-reasoner",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "reasoning_content": "Дай мне подумать шаг за шагом:\n1. нам нужно сравнить9.11и9.8размер\n2. Оба числа десятичные,Мы можем напрямую сравнить\n3. 9.8 = 9.80\n4. 9.11 `< 9.80\n5. так9.8больше",
        "content": "9.8 is greater than 9.11."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 10,
    "completion_tokens": 15,
    "total_tokens": 25
  }
}

Ответ в потоковом режиме ✅

curl https://api.deepseek.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $API_KEY" \
  -d '{
    "model": "deepseek-reasoner",
    "messages": [
      {
        "role": "user",
        "content": "9.11 and 9.8, which is greater?"
      }
    ],
    "stream": true
  }'

Пример ответа потоковой передачи:

{"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"deepseek-reasoner","choices":[{"index":0,"delta":{"role":"assistant","reasoning_content":"разрешите"},"finish_reason":null}]}

{"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"deepseek-reasoner","choices":[{"index":0,"delta":{"reasoning_content":"шаг за шагом"},"finish_reason":null}]}

{"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"deepseek-reasoner","choices":[{"index":0,"delta":{"reasoning_content":"думать:"},"finish_reason":null}]}

// ... Больше контента для цепочки мышления ...

{"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"deepseek-reasoner","choices":[{"index":0,"delta":{"content":"9.8"},"finish_reason":null}]}

{"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"deepseek-reasoner","choices":[{"index":0,"delta":{"content":" is greater"},"finish_reason":null}]}

// ... Больше окончательного ответа ...

{"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"deepseek-reasoner","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}

📮 Запрос

Конечная точка

POST /v1/chat/completions

Метод аутентификации

Включите в заголовок запроса для аутентификации ключа API следующее:

Authorization: Bearer $API_KEY

Где $DEEPSEEK_API_KEY — ваш ключ API.

Параметры тела запроса

$DEEPSEEK_API_KEY

  • Тип: массив
  • Требуется: Да

Список сообщений, содержащих беседу на данный момент. Обратите внимание: если вы передадите Reasoning_content в последовательности входных сообщений, API вернет ошибку 400.

$DEEPSEEK_API_KEY

  • Тип: строка
  • Требуется: Да
  • Значение: глубокий поиск-разум

Идентификатор модели, который нужно использовать. В настоящее время поддерживается только deepseek-reasoner.

$DEEPSEEK_API_KEY

  • Тип: целое число
  • Требуется: Нет -По умолчанию: 4096
  • Максимальное значение: 8192

Максимальная длина окончательного ответа (исключая вывод цепочки мыслей). Обратите внимание, что объем вывода Thought Chain может достигать 32 тысяч токенов.

$DEEPSEEK_API_KEY

  • Тип: Логический
  • Требуется: Нет -Значение по умолчанию: ложь

Использовать ли потоковые ответы.

Неподдерживаемые параметры

Следующие параметры в настоящее время не поддерживаются:

-температура

  • топ_п
  • присутствие_пенальти
  • частота_пенальти
  • логпробы
  • top_logprobs

Примечание. Чтобы обеспечить совместимость с существующим программным обеспечением, установка параметров температуры, top_p, Presence_penalty и Frequency_penalty не приведет к ошибке, но не вступит в силу. Установка logprobs и top_logprobs сообщит об ошибке.

Поддерживаемые функции

  • Завершение разговора
  • Продолжение префикса разговора (бета)

Неподдерживаемые функции

  • Вызов функции
  • Вывод Json
  • Завершение FIM (бета)

📥 Ответ

Успешный ответ

Возвращает объект завершения чата или, если запрос передается в потоковом режиме, потоковую последовательность объектов блока завершения чата.

$DEEPSEEK_API_KEY

  • Тип: строка
  • Описание: Уникальный идентификатор ответа.

$DEEPSEEK_API_KEY

  • Тип: строка
  • Описание: тип объекта, значение «chat.completion».

$DEEPSEEK_API_KEY

  • Тип: целое число
  • Описание: временная метка создания ответа.

$DEEPSEEK_API_KEY

  • Тип: строка
  • Описание: используемое название модели, значение «deepseek-reasoner».

$DEEPSEEK_API_KEY

  • Тип: массив
  • Описание: Содержит сгенерированные варианты ответа.
  • Свойства:
    • $DEEPSEEK_API_KEY: индекс опции
    • $DEEPSEEK_API_KEY: объект сообщения, содержащий роль, содержание цепочки мыслей и окончательный ответ.
      • $DEEPSEEK_API_KEY: роль, значение «помощник».
  • reasoning_content: содержание цепочки мыслей.
    • reasoning_content: содержание окончательного ответа.
    • reasoning_content: Причина завершения.

reasoning_content

  • Тип: Объект
  • Описание: статистика использования токенов.
  • Свойства:
    • reasoning_content: Подскажите количество используемых токенов.
    • reasoning_content: количество жетонов, использованных для завершения.
    • reasoning_content: общее количество токенов

📝 Инструкции по склейке контекста

Во время каждого раунда диалога модель выводит содержание цепочки мышления (reasoning_content) и окончательный ответ (content). В следующем раунде диалога вывод содержимого цепочки мышления в предыдущем раунде не будет включен в контекст, как показано на следующем рисунке: Диаграмма соединения контекста рассуждений Deepseek

Уведомление

Если вы передадите Reasoning_content в последовательности входных сообщений, API вернет 400. Ошибка. Поэтому перед запуском API удалите поле Reasoning_content в ответе API. Запрос, метод показан в примере использования ниже.

Пример использования:

from openai import OpenAI
client = OpenAI(api_key="<DeepSeek API Key>`", base_url="https://api.deepseek.com")

# первый раунд диалога
messages = [{"role": "user", "content": "9.11 and 9.8, which is greater?"}]
response = client.chat.completions.create(
    model="deepseek-reasoner",
    messages=messages
)

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

# Второй раунд диалога - монтируется только финальное содержание ответа
messages.append({'role': 'assistant', 'content': content})
messages.append({'role': 'user', 'content': "How many Rs are there in the word 'strawberry'?"})
response = client.chat.completions.create(
    model="deepseek-reasoner",
    messages=messages
)

Пример потокового ответа:

# первый раунд диалога
messages = [{"role": "user", "content": "9.11 and 9.8, which is greater?"}]
response = client.chat.completions.create(
    model="deepseek-reasoner",
    messages=messages,
    stream=True
)

reasoning_content = ""
content = ""

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

# Второй раунд диалога - монтируется только финальное содержание ответа
messages.append({"role": "assistant", "content": content})
messages.append({'role': 'user', 'content': "How many Rs are there in the word 'strawberry'?"})
response = client.chat.completions.create(
    model="deepseek-reasoner",
    messages=messages,
    stream=True
)