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.
Настройка
- Откройте Models → Model Providers. Найдите DeepSeek среди настроенных провайдеров. Если его нет, нажмите Add New Provider и выберите DeepSeek.
- Нажмите Add Key или откройте существующий ключ.
- Задайте имя ключа.
- Вставьте API-ключ или укажите переменную окружения, например
env.DEEPSEEK_API_KEY. - В Allowed Models оставьте All Models или перечислите модели, которые обслуживает ключ.
- Чтобы направлять chat и Responses через Anthropic-совместимые эндпоинты, включите соответствующий переключатель в форме ключа. Подробнее — в разделе Anthropic-совместимые эндпоинты.
- Сохраните настройки провайдера.
{
"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_tokens | max_tokens |
temperature | temperature |
top_p | top_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 |