REST API

Форматы ввода

Массив input — то, что отправляет пользователь в текущем ходе. Каждый элемент — один из трёх типов: text, file или voice.

input обязателен и содержит от 1 элемента. Типы можно смешивать в одном массиве — например, текстовый вопрос и файл к нему.

text

Текстовый запрос — основной формат.

{ "type": "text", "text": "Переведи документ на английский" }

file

Файл для анализа. Сначала загрузите его через POST /api/files, затем вставьте возвращённый объект в input. Модель сама решит, каким инструментом его обработать (чтение документа, распознавание изображения и т.д.).

{
  "type": "file",
  "file": {
    "id": "42",                         // строка, не число
    "name": "report.pdf",
    "mime_type": "application/pdf",
    "provider_data": { "path": "…" }
  }
}

voice

Голосовое сообщение. Транскрибируется в текст перед обработкой. Загружается так же, как файл.

{
  "type": "voice",
  "voice": {
    "id": "7",
    "name": "message.ogg",
    "mime_type": "audio/ogg",
    "duration": 12.5                     // секунды, опционально
  }
}

Пример: текст + файл

"input": [
  { "type": "text", "text": "Резюмируй документ" },
  { "type": "file", "file": { "id": "42", "name": "report.pdf", "mime_type": "application/pdf" } }
]
id всегда строка
В input[].file.id и input[].voice.id идентификатор передаётся как строка, даже если POST /api/files вернул его числом. Поля id, name, mime_type обязательны.