Формат ответа
Мультиходовые разговоры
Чтобы продолжить диалог, передайте предыдущие ходы в массиве turns[]. Каждый ход собирается из input запроса и output/messages ответа.
Как собрать turn
После получения результата возьмите turn из задачи целиком (там уже есть input,
output, messages, metadata) и положите его в turns[]
следующего запроса.
запрос 1
{
"assistant_id": 1,
"input": [{ "type": "text", "text": "Что такое Laravel?" }]
}
запрос 2 — с историей
{
"assistant_id": 1,
"input": [{ "type": "text", "text": "Как работает роутинг?" }],
"turns": [
{
"input": [/* из ответа 1 */],
"output": [/* из ответа 1 */],
"messages": [/* из ответа 1 — обязательно */],
"metadata": {/* из ответа 1 — опционально */}
}
]
}
Правила
| Поле хода | Передавать? |
|---|---|
messages | Обязательно — это реальный контекст для модели. |
output | Нужно — используется для файлового контекста и некоторых инструментов. |
input | Нужно. |
metadata | Опционально — нужен только клиенту для показа стоимости. |
Порядок в turns[] — хронологический, старые ходы первыми.
Типичные ошибки
| Ситуация | Последствие |
|---|---|
messages: [] или его нет | Модель не видит историю — контекст пуст. |
Передан только metadata, без messages | То же самое. |
turns[] в обратном порядке | Модель видит историю задом наперёд. |
| Очень длинная история | Можно превысить лимит контекста модели. |
Нативные image-модели
Ассистентское сообщение нативной image-модели содержит полные base64-данные картинки в
messages. При передаче такого хода в turns[] тело запроса вырастает на
несколько МБ. Если история не нужна — этот messages можно не передавать.