Интеграция событий приложения
Эта настройка даёт GenUI слушать локальные события приложения FlutterFlow и превращать их в контекст разговора.
Так модель узнаёт о том, чего пользователь не писал:
- корзина изменилась;
- процесс завершён;
- сработало предупреждение;
- пользователь перешёл на другой экран;
- пришли данные с датчика.
GenUI сам подписывается на нужные локальные события и превращает их в скрытые сообщения контекста.
Два режима
-
Внедрение контекста (
auto_respond: false) — событие обогащает будущие ответы, не перебивая пользователя. Сообщение попадает в очередь ожидания и отправляется перед следующим сообщением пользователя, чтобы модель учла его при ответе. -
Немедленная реакция (
auto_respond: true) — событие сразу уходит в разговор как InternalMessage, модель начинает отвечать. Ответом может быть текст, интерфейс, то и другое или ничего видимого — зависит от системного запроса и контекста.
Как собирается сообщение
Текст задаётся в поле Message Template — вручную или из переменной.
Данные события GenUI подставит сам. Например, шаблон «Your order status is:» плюс событие со значением pending дадут сообщение «Your order status is pending».
Очередь ожидания
При auto_respond: false сообщения событий копятся в памяти до следующего сообщения пользователя. Размер очереди — 50 сообщений; при переполнении отбрасываются самые старые. Перед отправкой запроса накопленные сообщения добавляются в историю разговора как InternalMessage — без дополнительных обращений к модели.
Что стоит учесть
Фоновое состояние — через внедрение контекста
Например:
- содержимое корзины;
- текущий экран;
- результаты фоновой синхронизации.
Ответы становятся точнее, а пользователя ничто не отвлекает.
Срочное — через немедленную реакцию
Например:
- превышение порогового значения;
- завершение задачи;
- сбой задания;
- важное обновление.
Это те случаи, когда вмешаться в разговор оправданно.
Данные события — структурой
Если событие несёт данные, опишите их внятным типом. При сборке сообщения вызывается toMap(), и чем яснее структура, тем понятнее контекст для модели.
Не переполняйте очередь
Событие, срабатывающее часто, стоит группировать перед отправкой — очередь ограничена 50 сообщениями.
Примеры
Корзина без вмешательства
Локальное событие CartUpdated с auto_respond: false.
Каждое изменение корзины тихо пополняет контекст, и на вопрос «что у меня в корзине?» модель отвечает по актуальным данным.
Срочное предупреждение
Локальное событие TemperatureAlert с auto_respond: true.
Событие срабатывает — модель немедленно предупреждает пользователя и, если в каталоге есть подходящий компонент, рисует его.