Миграция с deepseek-chat и deepseek-reasoner до 24 июля 2026: аудит маршрутизации и замена моделей
DeepSeek выводит из эксплуатации устаревшие алиасы deepseek-chat и deepseek-reasoner 24 июля 2026 года в 15:59 UTC. После этого момента все API-запросы с этими именами перестанут работать. В этом руководстве — точные замены, diff-ы кода, чеклист для production-аудита и обновление конфигурации маршрутизации.
Миграция с deepseek-chat и deepseek-reasoner до 24 июля 2026
24 июля 2026 года в 15:59 UTC DeepSeek окончательно выводит из эксплуатации устаревшие алиасы моделей deepseek-chat и deepseek-reasoner. После этого момента любой API-запрос с одним из этих имён в поле model вернёт ошибку. Льготного периода нет, отката нет — это жёсткое отключение. Исправление — замена имени модели в одну строку, но настоящая работа — аудит всех мест в вашем стеке, где используются старые имена. В этом руководстве: маппинг замен, diff-ы кода до/после, чеклист для production-аудита и обновление конфигурации маршрутизации TheRouter.
Источник: Анонс DeepSeek V4 Preview Release (получено 2026-07-17) и DeepSeek Models & Pricing (получено 2026-07-17).
Что меняется и почему
Когда DeepSeek выпустил семейство моделей V4 в апреле 2026, появились два новых model ID: deepseek-v4-flash и deepseek-v4-pro. В переходный период (апрель–июль 2026) старые имена перенаправлялись автоматически:
| Устаревший алиас | Текущий маршрут | После 24 июля |
|---|---|---|
deepseek-chat | deepseek-v4-flash (без режима thinking) | Жёсткий отказ — алиас удалён |
deepseek-reasoner | deepseek-v4-flash (режим thinking) | Жёсткий отказ — алиас удалён |
Оба алиаса указывают на одну и ту же модель (deepseek-v4-flash), но с разными значениями по умолчанию для режима thinking. После отключения нужно использовать явные V4 model ID.
- Меняйте три значения, а не три SDK. Замените
api_key,base_urlиmodelв существующем клиенте OpenAI. Код запроса и ответа оставьте неизменным. - Сопоставьте model ID явно. ID модели у целевого провайдера почти никогда не совпадает с OpenAI ID. Держите словарь
{ openai_id: target_id }вне бизнес-логики. - Проверьте формат streaming. SSE-чанки должны соответствовать контракту OpenAI:
data: {...}+data: [DONE]. Прогоните один streaming вызов до продакшена. - Проверьте rate-limit заголовки. Некоторые провайдеры не возвращают
x-ratelimit-*. Добавьте обёртку с безопасным дефолтом. - Оставьте путь отката. Раскатайте замену под feature flag, гоняйте оба endpoint в shadow-режиме 24 часа, затем переключайтесь.
Маппинг замен
Точная таблица замены старых имён на новые:
deepseek-chat → deepseek-v4-flash (без thinking)
Если вы использовали deepseek-chat для обычных диалогов, генерации кода или задач без рассуждений, переключитесь на deepseek-v4-flash с отключённым thinking:
# До миграции (перестанет работать после 24 июля)
response = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "Объясни TCP/IP в одном абзаце."}]
)
# После миграции
response = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[{"role": "user", "content": "Объясни TCP/IP в одном абзаце."}],
extra_body={"thinking": {"type": "disabled"}}
)
Зачем параметр thinking? Модели DeepSeek V4 по умолчанию включают режим thinking. Если вы использовали deepseek-chat для быстрых ответов без рассуждений, нужно явно отключить thinking, чтобы сохранить то же поведение и стоимость.
deepseek-reasoner → deepseek-v4-flash (с thinking)
Если вы использовали deepseek-reasoner для задач с цепочками рассуждений, миграция ещё проще — deepseek-v4-flash по умолчанию работает в режиме thinking:
# До миграции (перестанет работать после 24 июля)
response = client.chat.completions.create(
model="deepseek-reasoner",
messages=[{"role": "user", "content": "Докажи, что √2 иррационально."}]
)
# После миграции
response = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[{"role": "user", "content": "Докажи, что √2 иррационально."}]
)
Так как deepseek-v4-flash по умолчанию включает thinking, единственное изменение — имя модели. Поле reasoning_content в ответе работает идентично.
Выбор deepseek-v4-pro
Если вам нужны более сильные возможности reasoning и вы готовы платить больше, рассмотрите deepseek-v4-pro вместо deepseek-v4-flash. Обе модели поддерживают thinking и non-thinking режимы, контекст 1M, tool calls и JSON output.
| Модель | Input (cache miss) | Input (cache hit) | Output | Concurrency |
|---|---|---|---|---|
deepseek-v4-flash | $0.14/M | $0.0028/M | $0.28/M | 2 500 |
deepseek-v4-pro | $0.435/M | $0.003625/M | $0.87/M | 500 |
Источник: DeepSeek Models & Pricing (получено 2026-07-17).
Чеклист аудита production-окружения
Замена имени модели тривиальна. Найти каждое вхождение deepseek-chat и deepseek-reasoner в production-стеке — нет. Пройдитесь по этому чеклисту:
1. Код приложения
# Поиск по кодовой базе
grep -rn "deepseek-chat\|deepseek-reasoner" --include="*.py" --include="*.ts" --include="*.js" --include="*.go" --include="*.rs" --include="*.java" .
Проверьте строковые литералы, константы, объекты конфигурации и enum-значения.
2. Переменные окружения
# Типичные паттерны
env | grep -i "deepseek\|MODEL"
# Проверка .env, .env.local, .env.production
grep -rn "deepseek-chat\|deepseek-reasoner" .env* 2>/dev/null
3. Файлы конфигурации
Поиск в YAML, JSON, TOML и INI:
find . -name "*.yaml" -o -name "*.yml" -o -name "*.json" -o -name "*.toml" -o -name "*.ini" | \
xargs grep -l "deepseek-chat\|deepseek-reasoner" 2>/dev/null
4. Infrastructure as Code
Terraform-переменные, Kubernetes ConfigMap, Docker Compose environment, переменные CI/CD pipeline (GitHub Actions secrets, GitLab CI variables) — всё нужно проверить.
5. Переопределения SDK по умолчанию
Некоторые фреймворки (LangChain, LlamaIndex, AutoGen) принимают имена моделей в kwargs конструктора или файлах конфигурации. Ищите паттерны model= и model_name=.
6. Базы данных и key-value хранилища
Если вы храните предпочтения моделей по пользователям или тенантам в БД, выполните запрос:
SELECT DISTINCT model_name FROM api_configs
WHERE model_name IN ('deepseek-chat', 'deepseek-reasoner');
7. Сторонние интеграции
Если вы направляете DeepSeek через gateway, proxy или слой маршрутизации (например, TheRouter), обновите маппинг моделей в конфигурации маршрутизации.
Режим thinking: изменения поведения
DeepSeek V4 объединяет thinking и non-thinking режимы под одним model ID с явным переключателем. Это поведенческое изменение по сравнению со старым разделением:
| Старое поведение | Новое поведение |
|---|---|
deepseek-chat = всегда без thinking | deepseek-v4-flash + thinking.type: disabled |
deepseek-reasoner = всегда с thinking | deepseek-v4-flash + thinking.type: enabled (по умолчанию) |
Переключатель thinking использует параметр extra_body в OpenAI SDK:
# Явное отключение thinking (эквивалент старого deepseek-chat)
response = client.chat.completions.create(
model="deepseek-v4-flash",
messages=messages,
extra_body={"thinking": {"type": "disabled"}}
)
# Явное включение thinking с контролем усилия
response = client.chat.completions.create(
model="deepseek-v4-flash",
messages=messages,
reasoning_effort="high",
extra_body={"thinking": {"type": "enabled"}}
)
Уровни reasoning effort: В режиме thinking параметр reasoning_effort принимает high (по умолчанию) или max. Для совместимости значения low и medium автоматически маппятся на high.
Источник: Документация DeepSeek Thinking Mode (получено 2026-07-17).
Различия формата ответов
Если ваш код парсит ответы, при миграции с deepseek-reasoner обратите внимание на следующее:
- Поле
reasoning_content— по-прежнему возвращается на том же уровне, что иcontent, в режиме thinking. Код парсинга менять не нужно. - Tool calls + thinking — при использовании tool calls в режиме thinking поле
reasoning_contentиз промежуточных шагов обязательно нужно передавать в последующие API-вызовы. Это требование существовало и дляdeepseek-reasoner, но если вы впервые включаете thinking для workflow, который раньше использовалdeepseek-chat, ваш цикл tool calls нуждается в обновлении. - Многоходовой контекст — в ходах без tool calls
reasoning_contentиз предыдущих ходов игнорируется API при передаче. В ходах с tool calls — обязательно.
Влияние на стоимость
Если вы использовали deepseek-chat (без thinking), переход на deepseek-v4-flash с отключённым thinking не меняет стоимость — цены на input и output токены идентичны.
Если вы использовали deepseek-reasoner (с thinking), цены V4-Flash в режиме thinking такие же — reasoning-токены тарифицируются как output-токены.
На практике V4-Flash может быть немного дешевле per-task, так как базовая модель эффективнее предшественника. Мы не зафиксировали повышения цен при этой миграции.
Конфигурация маршрутизации TheRouter
Если вы маршрутизируете DeepSeek через TheRouter, обновите алиасы моделей в правилах маршрутизации. TheRouter уже поддерживает deepseek-v4-flash и deepseek-v4-pro как полноценные целевые модели.
Для fallback-конфигурации на период перехода можно настроить маппинг моделей, обрабатывающий и старые, и новые имена:
// Пример: маршрутизация старых имён на V4 эквиваленты
const modelMapping = {
"deepseek-chat": "deepseek-v4-flash",
"deepseek-reasoner": "deepseek-v4-flash",
};
После 24 июля запросы со старыми именами будут отклонены на уровне DeepSeek API независимо от вашей конфигурации маршрутизации, поэтому обновление источника (ваш код приложения или вызовы клиентского SDK) обязательно.
Подробнее об интеграции DeepSeek — в нашем полном руководстве по DeepSeek API.
Таймлайн и план действий
| Дата | Действие |
|---|---|
| Сейчас | Выполните чеклист аудита. Прогрепьте весь стек. |
| До 21 июля | Задеплойте изменения имён моделей на staging. Протестируйте поведение thinking. |
| До 23 июля | Задеплойте в production. Убедитесь по логам, что ни один запрос не использует старые имена. |
| 24 июля, 15:59 UTC | Жёсткий дедлайн. Старые алиасы перестают работать. Отката нет. |
FAQ
Q: Вернёт ли deepseek-chat осмысленное сообщение об ошибке или просто упадёт?
DeepSeek не задокументировал конкретный формат ошибки. Ожидайте стандартную API-ошибку (вероятно 400 или 404), указывающую на невалидное имя модели.
Q: Можно ли использовать deepseek-v4-pro как drop-in замену вместо deepseek-v4-flash?
Да. Обе модели поддерживают одинаковый API (thinking mode, tool calls, JSON output, контекст 1M). Разница в возможностях и стоимости — V4-Pro примерно в 3 раза дороже, но сильнее в reasoning-бенчмарках.
Q: Затронуты ли deepseek-r1 и deepseek-v3?
Нет. Это отдельные model ID для моделей предыдущих поколений. Они не упоминаются в объявлении об отключении 24 июля и остаются доступными на момент публикации. Для новых проектов мы рекомендуем семейство V4.
Q: Затрагивает ли это модели DeepSeek на других платформах (DashScope, SiliconFlow и т.д.)?
Нет. Отключение касается только прямого API DeepSeek (api.deepseek.com). Сторонние платформы используют собственные соглашения об именах моделей. Проверяйте документацию каждой платформы отдельно.
Последнее обновление: 2026-07-17. Источники: DeepSeek V4 Release Notes, DeepSeek Models & Pricing, DeepSeek Thinking Mode.