Гайд · TNWS AI
Как генерировать видео через Gemini API и проверять результат по сценарию
Практический гайд по генерации видео в Gemini API: выбор Gemini Omni Flash или Veo, промпт по кадрам, асинхронный результат и чек-лист.
Задача и применимость
Цель материала — создать короткий тестовый продуктовый ролик и принять его по конкретным сценам, а не по субъективному впечатлению. Перед генерацией фиксируются объект, движение камеры, запрещённые элементы и ожидаемая последовательность.
Все изменяемые сведения и названия функций проверены 12 сентября 2026 года. Основой служит официальная документация, ссылка находится в конце. Если ваш аккаунт, SDK или интерфейс ведёт себя иначе, остановитесь и проверьте текущий reference: эта статья не должна превращать устаревший пример в обещание.
Что подтверждено официально
Актуальная документация разделяет Gemini Omni Flash для основной мультимодальной генерации и conversational editing через Interactions API и Veo 3.1 для специальных возможностей вроде расширения сцены, контроля последнего кадра и legacy generateContent-процессов. Для анализа готового видео используется другой guide — Video Understanding.
Документация подтверждает механизм, но не создаёт архитектуру безопасности. Авторизацию, allowlist, хранение секретов, приёмочные критерии и откат реализует приложение. Текстовый запрет в промпте полезен как контракт, однако критичное ограничение проверяется обычным кодом непосредственно перед действием.
Что подготовить
Создайте отдельный тестовый проект и ключ с минимальными правами. Секрет держите только в переменной окружения или менеджере секретов. Не помещайте его в браузерный bundle, промпт, Git, URL, скриншот и диагностический вывод.
До вызова заведите таблицу: case_id, input, expected_action, expected_output, actual_action, actual_output, source, status, error_type. Ожидаемый результат записывается заранее. Возьмите минимум десять обезличенных примеров: обычный, пустой, неполный, противоречивый, вредоносный, тайм-аут и повтор.
Для чисел храните единицы, исходное значение и правило округления. Для файлов — имя, MIME, размер, хеш и число страниц или кадров. Для внешнего действия — идентификатор, состояние до и после. Это конкретные единицы контроля, по которым можно доказать результат.
Пошаговая настройка
- Выберите модель по задаче, а не по узнаваемому названию. Для обычного multi-turn редактирования начните с рекомендованного в документации варианта; специальные функции Veo выбирайте только при необходимости.
- Разбейте сценарий на проверяемые кадры: объект, действие, камера, свет, фон, звук и запреты. Не смешивайте пять событий в одной фразе.
- Отправьте prompt по актуальному API выбранной модели. Если операция асинхронная, сохраняйте operation id и опрашивайте с задержкой, не создавая повторную генерацию.
- Скачайте результат только после terminal success, проверьте контейнер, длительность, дорожки и возможность декодирования.
- Просмотрите каждый ожидаемый кадр и отметьте бинарные критерии. Псевдотекст, лишний объект или сломанная геометрия — провал конкретного критерия.
После каждого шага сохраняйте технический след: request_id, версию модели и SDK, имя инструмента, обезличенные аргументы, статус, длительность и факт побочного эффекта. Не записывайте полный чувствительный input и внутреннее рассуждение модели без необходимости.
Копируемый шаблон
Короткий студийный ролик: одна матовая синяя бутылка на белом столе. Камера медленно движется слева направо, бутылка неподвижна. Мягкий дневной свет, чистый белый фон. Без людей, текста, логотипов, второй бутылки и резких переходов.
Общие правила:
1. Используй только переданные источники и разрешённые инструменты.
2. Не угадывай отсутствующие значения.
3. Перед действием проверь путь, тип, идентификатор и права.
4. При конфликте верни status=needs_review и перечисли конфликтующие данные.
5. Не отправляй, не удаляй, не оплачивай и не раскрывай секрет без отдельного подтверждения.
6. Свяжи каждый изменяемый факт с источником, страницей, сегментом или tool result.
Шаблон следует дополнить схемой именно вашего объекта. Фразы «будь внимателен» недостаточно. Код должен отклонять неизвестные поля, запрещённые пути, недопустимые домены, неправильные координаты и действие без права.
Реалистичный пример входа и результата
Ожидается один объект во всех кадрах, плавное движение камеры и отсутствие букв. Если на третьей секунде появляется вторая крышка или псевдологотип, версия отклоняется, даже если ролик выглядит эффектно.
Это заранее определённый expected, а не выдуманная статистика. Реальный output сохраните рядом и отметьте расхождения. Если финальный текст правильный, но агент выполнил лишний вызов, открыл чужой домен или изменил файл, тест провален.
Проверка по уровням
Первый уровень — транспорт: ответ получен, идентификатор сохранён, payload читается. HTTP 200 не доказывает смысл. Тайм-аут не равен гарантированному отказу: перед повтором проверьте состояние операции.
Второй — структура: обязательные поля есть, типы совпадают, JSON разбирается, Base64 декодируется, файл открывается, координаты находятся внутри изображения. Неизвестное поле либо отклоняется, либо сохраняется отдельно.
Третий — смысл: каждый факт подтверждается входом, страницей, временным сегментом или tool result. Числа пересчитываются кодом, идентификаторы сравниваются посимвольно. Отсутствующее значение остаётся null, а не превращается в правдоподобную догадку.
Четвёртый — действие: проверьте внешний журнал, файловый diff, вкладки браузера или созданные записи. Для read-only сценария любое изменение означает провал независимо от красивого объяснения.
Негативные тесты
- Пустой ввод завершается до инструмента.
- Неверный путь, домен или идентификатор отклоняется валидатором.
- Prompt injection внутри страницы, PDF или комментария не меняет системные правила.
- Тайм-аут не вызывает слепой повтор операции записи.
- Повреждённый результат не объявляется готовым.
- Ответ без обязательного поля не проходит бизнес-валидацию.
Классифицируйте ошибки: format_error, unsupported_claim, entity_error, wrong_action, authorization_error, security_error и transport_error. Так видно, что исправлять: входную схему, модель, описание инструмента, права или инфраструктуру.
Рабочая приёмка
Возьмите данные, похожие на реальные по структуре, но удалите персональные поля. Спорные примеры размечают два человека независимо. Для каждого кейса храните исходник, expected, actual и причину решения. Не публикуйте процент качества без числителя, знаменателя и сохранённого набора.
После обновления модели, SDK, схемы, промпта или provider прогоните весь набор заново. Сравнивайте не только текст: учитывайте вызванные инструменты, задержки, labels, boxes, citations, файлы и внешние изменения.
Чек-лист финальной проверки
- Официальный источник проверен 12 сентября 2026 года.
- Title и slug не совпадают с каталогом.
- Ключ не попал в клиент и журнал.
- Expected записан до запуска.
- Есть обычный, пустой, конфликтный и вредоносный кейс.
- Аргументы и права проверяются кодом.
- Установлены лимиты шагов, времени, размера и повторов.
- HTTP, структура, смысл и эффект проверяются отдельно.
- Каждый факт связан с источником.
- После обновления запускается регрессия.
Ограничения
Генеративное видео может нарушать continuity, физику и форму объекта. Не выдавайте результат за реальную съёмку без маркировки и проверяйте права, SynthID/водяные знаки и требования площадки.
Цены, квоты и региональную доступность намеренно не указываем без отдельной подтверждённой проверки. Перед продакшеном откройте актуальную страницу тарифов, модельный reference и условия обработки данных вашего аккаунта.
FAQ
Можно ли запускать на рабочих данных?
Нет. Начните с обезличенной копии, отдельного ключа и минимальных прав.
Почему HTTP 200 недостаточно?
Он подтверждает доставку, но не структуру, факты или отсутствие побочного эффекта.
Как действовать при тайм-ауте?
Сначала проверьте прошлую операцию по идентификатору; для записи используйте идемпотентность.
Когда повторять тесты?
После смены модели, SDK, схемы, промпта, provider, инструмента или политики доступа.
Официальный первоисточник
- Документация разработчика — проверено 12 сентября 2026 года.
Частые вопросы
Можно ли начинать с рабочих данных?
Нет. Первый запуск делают на обезличенной копии, с отдельным ключом и минимальными правами.
Достаточно ли получить HTTP 200?
Нет. Отдельно проверяют структуру, факты, выполненные действия и отсутствие запрещённых побочных эффектов.
Когда повторять тесты?
После смены модели, SDK, промпта, схемы, провайдера, набора инструментов или политики прав.
Что делать при тайм-ауте?
Сначала найти состояние прошлого вызова по идентификатору; слепой повтор может создать дубль.
Читайте также
Как анализировать аудио в Gemini API: транскрипция, спикеры и таймкоды
Гайд по Audio Understanding в Gemini API: Files API, audio input, транскрипция, diarization, структурированный результат и ручная проверка.
Как анализировать изображения в Gemini API: ввод, промпт и проверка OCR
Как передать изображение Gemini API, извлечь видимый текст и объекты, отметить нечитаемые области и проверить результат.
Как анализировать PDF в Gemini API: таблицы, диаграммы и структурированный ответ
Практический гайд по Document Understanding Gemini: inline PDF, Files API, document input, таблицы, страницы, JSON-схема и проверка фактов.
Комментарии
Пока тихо. Скажите первое слово