Проблема ограничений и решение DeepSeek
Ранее разработчики сталкивались с жесткими лимитами при отправке изображений в чат-модели: ограничение на размер тела запроса составляло 48 МБ, а на одно встроенное изображение — 32 МБ. DeepSeek решила эту проблему, внедрив Files API. Теперь изображения можно загружать отдельно, получая уникальный file_id, который затем используется в запросах к модели deepseek-v4-flash-vision-exp. Это позволяет не только избежать лимитов, но и переиспользовать одни и те же файлы в множестве запросов без повторной загрузки.
Технические характеристики и лимиты
Новый API поддерживает форматы JPEG, PNG, GIF и WebP. Максимальный размер одного файла увеличен до 64 МБ, а общий лимит хранилища на аккаунт составляет 25 ГБ. Файлы можно хранить постоянно или задать срок их жизни от 1 часа до 30 дней.
| Параметр | Значение / Описание |
|---|---|
| Макс. размер файла | 64 MiB |
| Макс. размер запроса (через file_id) | До 64 MiB (вместо прежних 32 MiB) |
| Лимит хранилища на пользователя | 25 GiB |
| Макс. количество файлов | 10 000 на аккаунт |
| Срок хранения | Постоянно или от 1 часа до 30 дней |
| Поддерживаемые форматы | JPEG, PNG, GIF, WebP |
Совместимость с OpenAI и Anthropic
DeepSeek обеспечивает двустороннюю совместимость. API работает как с OpenAI-совместимым клиентом (базовый URL https://api.deepseek.com), так и с Anthropic-совместимым (базовый URL https://api.deepseek.com/anthropic). Для работы через Anthropic-эндпоинт требуется заголовок anthropic-beta: files-api-2025-04-14. Это позволяет разработчикам использовать единый бэкенд с разными SDK без значительных изменений в коде.
Как это работает на практике
Процесс интеграции состоит из двух шагов. Сначала файл загружается через POST /files с параметром purpose="user_data". Затем в запросе к модели используется структура контента с типом file и указанием file_id:
- Загрузка:
client.files.create(file=..., purpose="user_data") - Использование:
content=[{"type": "text", "text": "..."}, {"type": "file", "file_id": "..."}]
Также поддерживается передача изображения inline через base64 в поле file_data внутри блока file, что дает гибкость в выборе способа передачи данных.
Источник: Deepseek ↗
