Как перейти с OpenAI API на DeepSeek API: что поменять в коде и о чём не забыть

Пошаговый переход с OpenAI API на DeepSeek API: base_url, имена моделей, режим рассуждений, инструменты, цены в часы пик и вне пика, лимиты и типичные ошибки.
Разработчик за ноутбуком переключает большой рычаг, а два робота передают друг другу светящийся кабель между серверами

DeepSeek API изначально сделан совместимым с форматом OpenAI. Поэтому перевести проект с OpenAI на DeepSeek часто можно за несколько минут: заменить адрес, ключ и имя модели. Но «часто» не значит «всегда». У DeepSeek свои правила для режима рассуждений, инструментов и параметров генерации, а цены зависят от времени суток.

Разберём переход по шагам: что поменять обязательно, что лучше проверить и на каких мелочах чаще всего спотыкаются. Все данные ниже — из официальной документации DeepSeek на начало октября 2026 года.

Шаг 1. Адрес, ключ и модель

Если вы используете официальный SDK OpenAI для Python или Node.js, менять библиотеку не нужно. Достаточно трёх правок:

  1. Получите API-ключ в кабинете DeepSeek Platform и пополните баланс: оплата списывается с баланса по количеству токенов.
  2. Укажите base_url="https://api.deepseek.com".
  3. Замените имя модели.

Сейчас в API две модели:

МодельВерсияОсобенности
deepseek-flashDeepSeek-V4.1-Flashбыстрая и дешёвая, понимает изображения
deepseek-v4-proDeepSeek-V4-Pro-0813флагман, только текст

У обеих контекст 1 млн токенов и максимальный ответ до 384 тысяч токенов. Старые имена deepseek-v4-flash и deepseek-v4-flash-vision-exp пока принимаются и перенаправляются на V4.1-Flash. А вот deepseek-chat и deepseek-reasoner, которые встречаются в старых туториалах, по объявлению DeepSeek должны были перестать работать после 24 июля 2026 года и в актуальной документации уже не упоминаются. Если копируете пример из интернета, проверьте имя модели.

Минимальный пример на Python выглядит так: создаёте клиент OpenAI(api_key=..., base_url="https://api.deepseek.com") и вызываете client.chat.completions.create(model="deepseek-flash", messages=[...]). Всё остальное — как в OpenAI.

Шаг 2. Разберитесь с режимом рассуждений

Главное отличие от привычной работы с OpenAI: у моделей DeepSeek режим мышления включён по умолчанию, с уровнем усилий high. Модель сначала генерирует цепочку рассуждений, затем ответ. Это повышает качество на сложных задачах, но для простых запросов (классификация, короткие ответы) может быть лишним.

Что важно знать:

  • Отключить мышление можно параметром thinking со значением {"type": "disabled"}. В SDK OpenAI его передают через extra_body.
  • Уровень усилий задаётся параметром reasoning_effort: low, high или max. Значения OpenAI вроде minimal, medium или xhigh тоже принимаются и сопоставляются с ближайшими уровнями.
  • Рассуждения возвращаются отдельным полем reasoning_content, рядом с обычным content. Если ваш код ожидает только content, он продолжит работать.
  • В режиме мышления параметры temperature, presence_penalty и frequency_penalty не действуют. Ошибки не будет, но и эффекта тоже. top_p работает только в диапазоне 0,95–1,0.

Подробно о том, как DeepSeek пришёл к такой схеме — от отдельной модели R1 к режиму основной модели, — рассказано в материале о судьбе DeepSeek R1 и режиме рассуждений.

Шаг 3. Проверьте вызов инструментов

Function calling поддерживается и работает в формате OpenAI. Но есть правило, которое ломает многие готовые агенты: если в запросе есть параметр tools, то reasoning_content всех предыдущих ответов модели нужно передавать обратно в истории сообщений. Даже на тех шагах, где модель не вызывала инструмент. Если этого не сделать, API вернёт ошибку 400.

Без tools правило обратное: рассуждения из прошлых ходов передавать не нужно, API их проигнорирует.

Шаг 4. Изображения, JSON и другие возможности

Возможностьdeepseek-flashdeepseek-v4-pro
JSON Outputдада
Tool Callsдада
Responses APIдада
Формат Anthropic APIдада
Изображения на входеданет
FIM-дополнение (бета)только без мышлениятолько без мышления

Изображения передаются так же, как в OpenAI: блоком image_url с base64 или ссылкой. Форматы — JPEG, PNG, GIF и WebP. Практические сценарии работы с картинками и документами на стороне пользователя разобраны в гиде как анализировать файлы и фото в DeepSeek.

Если ваш проект построен на Responses API (например, вы работаете с Codex), DeepSeek поддерживает и его — с тем же base_url. Для проектов на SDK Anthropic есть отдельный адрес https://api.deepseek.com/anthropic. Как выглядит работа с этим SDK в оригинале, можно посмотреть в инструкции про первый запрос к Claude API на Python.

Шаг 5. Посчитайте стоимость с учётом часов пик

С августа 2026 года DeepSeek использует тарифы «пик» и «вне пика». Цены за 1 млн токенов:

Тарифflash, вне пикаflash, пикv4-pro, вне пикаv4-pro, пик
Вход (попадание в кэш)$0,003$0,006$0,022$0,044
Вход (без кэша)$0,15$0,30$0,66$1,32
Выход$0,60$1,20$1,98$3,96

Пиковые часы — с 01:00 до 04:00 и с 06:00 до 10:00 по UTC, с понедельника по пятницу, кроме китайских праздников. По московскому времени это 04:00–07:00 и 09:00–13:00 в будни. Выходные целиком считаются непиковыми. Если у вас есть фоновые задачи — пакетная обработка, генерация описаний, разметка, — их выгодно переносить на вечер или выходные: цена в два раза ниже.

Как вообще считаются токены и почему один и тот же текст стоит по-разному в разных моделях, мы разбирали в статье о токенах в API и их подсчёте. У DeepSeek есть собственный офлайн-токенизатор для точной оценки, а фактический расход всегда приходит в поле usage ответа.

Шаг 6. Лимиты и ошибки

Вместо привычных лимитов запросов в минуту DeepSeek ограничивает число одновременных запросов на аккаунт: 2500 для deepseek-flash и 500 для deepseek-v4-pro. При превышении API возвращает ошибку 429. Увеличение лимита можно запросить через форму, по словам DeepSeek, бесплатно.

Если в вашем сервисе много конечных пользователей, передавайте параметр user_id: он изолирует кэш и проверку контента между пользователями. Персональные данные в него класть нельзя — только условный идентификатор.

Чек-лист перед переключением

  • base_url и ключ заменены, имя модели — deepseek-flash или deepseek-v4-pro;
  • решено, нужен ли режим мышления; для простых задач он отключён;
  • код с tools передаёт reasoning_content обратно;
  • настройки temperature не являются критичными для логики (в режиме мышления они игнорируются);
  • фоновые задачи перенесены на непиковые часы;
  • обработка ошибки 429 с повтором запроса настроена;
  • старые имена deepseek-chat и deepseek-reasoner нигде не остались.

Частые вопросы

Нужно ли переписывать код с OpenAI SDK?

Обычно нет. Меняются base_url, ключ и имя модели. Дополнительная работа нужна, если вы используете инструменты или полагаетесь на temperature.

Чем deepseek-flash отличается от deepseek-v4-pro?

Flash — более новая, быстрая и дешёвая модель с поддержкой изображений. V4-Pro — флагман предыдущего поколения, работает только с текстом и стоит дороже. В сентябре DeepSeek сообщила, что, по тестам нескольких сторон, V4.1-Flash опережает V4-Pro по качеству, цене и скорости. Тем не менее по просьбам пользователей компания продолжила обслуживать V4-Pro в API.

Почему ответы стали медленнее, чем в OpenAI?

Скорее всего, работает режим мышления: модель сначала рассуждает. Для коротких задач отключите его или поставьте reasoning_effort в low.

Можно ли использовать DeepSeek в Claude Code или Codex?

Да. DeepSeek поддерживает формат Anthropic API и Responses API и публикует инструкции для подключения популярных агентов, включая Claude Code и Codex.

Где смотреть актуальные цены?

На странице Models & Pricing в документации DeepSeek. Компания оставляет за собой право менять цены, поэтому перед запуском крупного проекта сверяйтесь с ней.

Like this post? Please share to your friends:
Open Ai Chat