Skip to main content
POST
Messages with vision: DeepSeek V4 Flash Vision (Anthropic format)
Ваш token для этого эндпоинта должен быть в группе ClaudeCode. Это жёсткое требование.Использование группы default приводит к двум наслаивающимся проблемам:
  1. Если не указывать top_p, каждый раз возвращается 400 Invalid top_p value
  2. Даже если top_p указан, повторная отправка блока thinking из первого хода во второй ход возвращает unknown variant 'thinking', expected one of 'text', 'image_url', 'file' —— а стандартные клиенты, такие как Claude Code и Anthropic SDK, всегда повторно отправляют его, поэтому многоходовой режим всегда ломается
Переключитесь на группу ClaudeCode, и ни одна из этих проблем не возникнет. Для формата OpenAI используйте Песочницу чата вместо этого.
Используйте песочницу справа, чтобы протестировать напрямую: поместите sk-your-apiyi-key в x-api-key (токен ClaudeCode, без префикса Bearer ) и оставьте anthropic-version на 2023-06-01. В примере используется общедоступное изображение и отключён thinking, так что вы можете нажать «Отправить» и сразу увидеть ответ.

Краткая справка по параметрам

Two ways to send an image

source.type = "base64"

Обратите внимание, что data не содержит префикса data:image/jpeg;base64, —— это отличается от формата OpenAI.

source.type = "url"

source.type = "url" работает только в группе ClaudeCode; группа default возвращает You have uploaded an unsupported image.source.type = "file" требует Files API, который эта платформа не предоставляет.

Содержимое ответа представляет собой массив блоков

В группе ClaudeCode блок thinking содержит поле signature, а потоковая передача также выдает signature_delta.

Многоходовый диалог и возврат через инструмент

Поместите весь content предыдущего хода ассистента обратно в messages —— включая блок thinking, не удаляйте его —— затем добавьте tool_result:
Второй ход проходит успешно в тестировании. Именно здесь группа default возвращает 400, и именно по этому пути идет каждый клиент в стиле Claude Code —— поэтому группа должна быть правильной.

Как читаются поля кэша

Применяется автоматическое кэширование префикса, сопоставленное со стандартными полями Anthropic: Запросы с изображением впервые получают попадание на 3-м вызове (только текст — на 2-м). Помещайте ваши фиксированные длинные инструкции перед изображением, чтобы они кэшировались.

Распространённые ошибки

Авторизации

x-api-key
string
header
обязательно

Your APIYI token, the raw sk- key. The token must be in the ClaudeCode group

Заголовки

anthropic-version
string
по умолчанию:2023-06-01
обязательно

Anthropic API version, always 2023-06-01

Тело

application/json
model
enum<string>
по умолчанию:deepseek-v4-flash-vision-exp
обязательно

Model ID, always deepseek-v4-flash-vision-exp

Доступные опции:
deepseek-v4-flash-vision-exp
max_tokens
integer
по умолчанию:800
обязательно

Output token budget (required in the Anthropic format), hard ceiling 393,216. Use 2000 or more with thinking on

Требуемый диапазон: x <= 393216
messages
object[]
обязательно

Message array. content is either a plain string or an array of content blocks for mixed text and images

system
string

System prompt

thinking
object

Thinking toggle. With {"type": "disabled"} the response content holds only a text block. Works in both groups on this endpoint

stream
boolean
по умолчанию:false

Stream the response over SSE, emitting the standard Anthropic message_start / content_block_delta / message_stop events

temperature
number

Sampling temperature

top_p
number

Nucleus sampling threshold. Optional in the ClaudeCode group; in the default group, omitting it returns 400

top_k
integer

Candidate cutoff

stop_sequences
string[]

Stop sequences

tools
object[]

Tool list in the standard Anthropic input_schema format. Verified with streaming increments and a full two-turn round trip

Ответ

Generation succeeded

id
string
type
string
role
string
model
string
content
object[]

Array of content blocks. [thinking, text] with thinking on, just [text] with it off, and [thinking, tool_use] when calling a tool

stop_reason
string
usage
object

Usage. Note this differs from the OpenAI format: after a cache hit input_tokens holds only the uncached remainder, so it cannot be reconciled with prompt_tokens directly