Поддерживаемые провайдеры

DeepSeek

Работа с DeepSeek API через Meridian — OpenAI-совместимый формат, streaming, tool calling, reasoning, beta text completions и Anthropic-совместимые эндпоинты.

Обзор

DeepSeek — OpenAI-совместимый провайдер с отдельной реализацией в Meridian под структуру эндпоинтов DeepSeek. Meridian использует общие OpenAI-совместимые конвертеры запросов и ответов, учитывает особенности режима thinking и направляет text completions на beta-эндпоинт FIM. Ключевые характеристики:

  • OpenAI-совместимый chat — Chat Completions отправляются на /chat/completions.
  • Поддержка streaming — Server-Sent Events для chat и text completions.
  • Tool calling — инструменты-функции передаются в OpenAI-совместимой схеме.
  • Reasoning — параметры reasoning передаются провайдеру, режим thinking согласуется с ограничениями DeepSeek.
  • Responses API — запросы Responses внутри преобразуются в Chat Completions.
  • Beta text completions — text/FIM completions отправляются на /beta/completions.
  • Anthropic-совместимые эндпоинты — chat и Responses можно направлять в Anthropic-совместимый API DeepSeek.

Поддерживаемые операции

ОперацияБез стримингаСтримингЭндпоинт
Chat Completions✅✅/chat/completions
Responses API✅✅/chat/completions
Text Completions✅✅/beta/completions
List Models✅—/models
Count Tokens✅—/anthropic/v1/messages/count_tokens
Embeddings❌❌—
Image Generation❌❌—
Speech (TTS)❌❌—
Transcriptions (STT)❌❌—
Files❌❌—
Batch❌❌—

Неподдерживаемые операции (❌): Embeddings, Image Generation, Speech, Transcriptions, Files, Batch, cached content, контейнеры, compaction, OCR, rerank и видео не поддерживаются API DeepSeek. Запросы к ним возвращают UnsupportedOperationError.

Настройка

  1. Откройте Models → Model Providers. Найдите DeepSeek среди настроенных провайдеров. Если его нет, нажмите Add New Provider и выберите DeepSeek.
  2. Нажмите Add Key или откройте существующий ключ.
  3. Задайте имя ключа.
  4. Вставьте API-ключ или укажите переменную окружения, например env.DEEPSEEK_API_KEY.
  5. В Allowed Models оставьте All Models или перечислите модели, которые обслуживает ключ.
  6. Чтобы направлять chat и Responses через Anthropic-совместимые эндпоинты, включите соответствующий переключатель в форме ключа. Подробнее — в разделе Anthropic-совместимые эндпоинты.
  7. Сохраните настройки провайдера.
{
  "providers": {
    "deepseek": {
      "keys": [
        {
          "name": "deepseek-key-1",
          "value": "env.DEEPSEEK_API_KEY",
          "models": ["*"],
          "weight": 1
        }
      ]
    }
  }
}

Ключи провайдера создаются через POST /api/providers/deepseek/keys. Формат запроса — в справочнике API.


1. Chat Completions

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

DeepSeek поддерживает OpenAI-совместимые параметры chat completions. Полный справочник параметров и правила конвертации сообщений — на странице OpenAI Chat Completions.

Фильтруемые параметры

Удаляются для совместимости с DeepSeek:

  • prediction — predicted output, специфично для OpenAI;
  • prompt_cache_key, prompt_cache_retention, prompt_cache_options — управление кэшем промпта, специфично для OpenAI;
  • verbosity — специфично для OpenAI;
  • store — хранение ответов, специфично для OpenAI;
  • web_search_options — веб-поиск, специфично для OpenAI.

Reasoning-параметр

Значение reasoning.effort нормализуется по правилам OpenAI-совместимых провайдеров, а reasoning.max_tokens при заданном effort не передаётся. Для моделей DeepSeek V4 значение reasoning.effort: "max" передаётся без изменений.

Reasoning в истории сообщений

DeepSeek по-разному обрабатывает reasoning_content в сообщениях ассистента:

  • в обычных сообщениях ассистента reasoning удаляется: DeepSeek отклоняет такие сообщения;
  • в сообщениях ассистента с вызовом инструмента reasoning сохраняется: DeepSeek требует передавать его повторно.

Автоматическое отключение thinking

Режим thinking в DeepSeek включён по умолчанию. Meridian отключает его для запроса, если DeepSeek иначе отклонил бы запрос с ошибкой 400:

  • задан принудительный tool_choice: required, any или вызов конкретной функции;
  • в истории есть сообщение ассистента с вызовом инструмента, но без reasoning.

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

Исходный запрос при этом не изменяется: если запрос уйдёт на резервный вариант у другого провайдера, настройки thinking останутся исходными.

Дополнительные параметры

Параметры, специфичные для DeepSeek, например управление режимом thinking, передаются в extra_params.

DeepSeek поддерживает стандартные типы сообщений OpenAI, инструменты и форматы streaming. Подробнее — на странице OpenAI Chat Completions.


2. Responses API

Meridian преобразует запрос Responses API в Chat Completions, а ответ — обратно в формат Responses:

Запрос Responses
  → Chat Completions
  → ответ Chat Completions
  → ответ Responses

Поддерживаются те же параметры, что и в Chat Completions. Ответ содержит элементы output вместо содержимого сообщения. Потоковые запросы Responses также выполняются через потоковый Chat Completions.


3. Text Completions

DeepSeek поддерживает beta text/FIM completions через /beta/completions:

ПараметрПередача
promptБез изменений
max_tokensmax_tokens
temperaturetemperature
top_ptop_p
stopСтоп-последовательности
extra_paramsПередаются в DeepSeek

Ответ содержит текст в choices[].text.


4. Text Completions Streaming

Потоковые text completions используют OpenAI-совместимый формат SSE на эндпоинте /beta/completions.


5. List Models

Список доступных моделей запрашивается у DeepSeek через /models.


6. Anthropic-совместимые эндпоинты

DeepSeek предоставляет Anthropic-совместимый API. Если режим включён, Meridian отправляет Chat Completions и Responses, в том числе потоковые, на /anthropic/v1/messages. Ключ передаётся в заголовке x-api-key.

Режим включается флагом use_anthropic_endpoints:

  • на ключе — для всех запросов через этот ключ;
  • в алиасе модели — только для запросов по этому алиасу. Значение в алиасе имеет приоритет над значением ключа.
{
  "providers": {
    "deepseek": {
      "keys": [
        {
          "name": "deepseek-anthropic",
          "value": "env.DEEPSEEK_API_KEY",
          "models": ["*"],
          "weight": 1,
          "use_anthropic_endpoints": true
        }
      ]
    }
  }
}

Переопределение для одного алиаса:

{
  "aliases": {
    "deepseek-pro-anthropic": {
      "model_id": "deepseek-v4-pro",
      "use_anthropic_endpoints": true
    }
  }
}

Подробнее об алиасах — на странице Алиасы моделей.

Text completions и List Models всегда используют OpenAI-совместимые эндпоинты. Подсчёт токенов всегда выполняется через /anthropic/v1/messages/count_tokens, независимо от флага.


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

ФункцияПричина
EmbeddingsНе предоставляется API DeepSeek
Image GenerationНе предоставляется API DeepSeek
Speech/TTSНе предоставляется API DeepSeek
Transcription/STTНе предоставляется API DeepSeek
BatchНе предоставляется API DeepSeek
FilesНе предоставляется API DeepSeek
Cached contentВ Meridian поддерживается только для Gemini и Vertex AI
КонтейнерыНе предоставляется API DeepSeek
CompactionНе предоставляется API DeepSeek
Rerank, OCR, видеоНе предоставляется API DeepSeek

Нюансы

Содержание