Что такое Intelligent UI и generative UI: краткий ответ
Intelligent UI - это вариант generative UI от OpenAI: вместо простыни текста или markdown модель собирает интерактивные элементы прямо в ходе ответа. Кнопки, формы, графики и калькуляторы появляются в чате как объекты, с которыми можно взаимодействовать, а не как их текстовое описание.
Команда OpenUI повторила то, как это устроено в ChatGPT, меньше чем за 24 часа после запуска функции и выпустила открытый фреймворк Open Intelligent UI. Привязки к конкретной модели нет, поэтому фреймворк связывается с локальными LLM через Ollama и LM Studio. Оговорка важная: готового решения «в один клик» не существует, это набор компонентов для самостоятельной сборки. Разбор реверс-инжиниринга и проекта Open Intelligent UI.
Практический смысл проще всего показать на задачах, где текстовый ответ неудобен: калькулятор накоплений с изменяемыми суммой, сроком и доходностью, деление счёта за ужин на шесть человек, план делового ужина по времени, маршрут поездки по трём городам с отметками остановок. Пользователь работает с самим элементом, а не читает абзац описания.
Чем Intelligent UI отличается от обычного текстового ответа
Под капотом - набор готовых элементов и сборщик, который строит интерфейс по ходу ответа. Поэтому калькулятор появляется на экране частями: сначала одни поля и кнопки, затем остальные. Описание механики Intelligent UI и примеры запросов.
Формат ответа выбирает модель. Если полезнее текст, она ответит текстом. Когда пришёл текст, а хотелось интерфейс, помогает прямой запрос: «покажи кнопками и графиком». Тот же источник приводит именно такую формулировку как рабочий приём.
Где Intelligent UI находится на спектре подходов к generative UI
Подходы к generative UI различаются объёмом свободы, который получает модель. Одни системы позволяют выбирать и компоновать элементы из предопределённой библиотеки компонентов, другие дают модели генерировать целые интерфейсы на лету: писать HTML или React-код и рендерить его в iframe. OpenUI, json-render от Vercel, A2UI от Google и Intelligent UI от ChatGPT стоят в разных точках этого спектра, и подробнее о компромиссах - в разделе о сравнении ниже.
Как команда OpenUI реверс-инжинирила ChatGPT менее чем за 24 часа
Работу выполнили меньше чем за сутки после запуска функции. Внутренний код OpenAI команда не видела: все выводы построены на публично наблюдаемом поведении. Публичный разбор реверс-инжиниринга.
Какие данные использовались для реверс-инжиниринга
Источников три. Первый - собственные аккаунты ChatGPT: команда смотрела, как ведёт себя интерфейс в обычных диалогах. Второй - трафик веб-приложения: какие запросы уходят на сервер и что приходит в ответ. Третий - открытый JavaScript, который chatgpt.com отдаёт любому посетителю, то есть клиентская логика сборки интерфейса.
Набор стандартный для анализа веб-приложений и не требует доступа к серверной инфраструктуре. Обратная сторона тоже очевидна: часть логики остаётся на сервере, поэтому картина заведомо неполная, и это стоит держать в голове, оценивая полноту такого разбора.
Что такое Open Intelligent UI и зачем он нужен
Ответ команды - открытый фреймворк Open Intelligent UI. Он позволяет собрать опыт, похожий на Intelligent UI, внутри своих приложений. Привязки к конкретной модели нет, поэтому тот же фреймворк подходит для локальных LLM через Ollama, LM Studio и аналогичные инструменты. На выходе получается конструктор: компоненты и логика есть, сборка остаётся на разработчике.
Как воссоздать Intelligent UI на локальных LLM через OpenUI и Ollama
Логика такая: локальная модель должна вернуть не текст, а структуру, например JSON с описанием интерфейса. Дальше рендерер OpenUI превращает структуру в интерактивные элементы. Модель при этом работает на вашем железе, и данные никуда не уходят.
Какие компоненты нужны для сборки
- Локальная LLM, запущенная через Ollama или LM Studio.
- Слой структурированного вывода: модель возвращает JSON или другую структуру, которую можно проверить схемой.
- Рендерер OpenUI: превращает структуру в кнопки, формы, графики и другие элементы.
OpenUI даёт именно компоненты, готовое приложение с чатом и интерфейсом придётся собирать самому. Похожую задачу решает другой открытый проект, где интерфейс строится из примитивов, которые генерирует модель: GUI harness собирает интерфейс из векторных примитивов и откатывает действия агента.
С какими локальными моделями это работает
Формально ограничений нет: подойдёт любая модель, которая умеет следовать заданному формату вывода. На практике всё решает дисциплина модели - способность не сломать JSON и правильно понять, какой элемент нужен в ответе. Публичных замеров, которые сравнивали бы локальные модели именно на этой задаче, в открытых материалах нет, так что проверять придётся на своих сценариях. Инструменты запуска стандартные: Ollama и LM Studio. Как подходить к сравнению моделей, разбираем в чек-листе для оценки новых AI-моделей, а про влияние контекста, KV-cache и VRAM на выбор - в разборе открытых LLM и стоимости инференса.
Сравнение подходов: OpenUI, json-render от Vercel, A2UI от Google и Intelligent UI
OpenUI, json-render от Vercel, A2UI от Google и Intelligent UI от ChatGPT находятся в разных точках спектра подходов к generative UI, и у каждого свои компромиссы по гибкости, надёжности, производительности и свободе модели. Сравнение этих проектов в исходном обсуждении.
Ключевые компромиссы: гибкость, надёжность, производительность
Библиотечный подход, где модель выбирает элементы из заранее заданного набора, даёт предсказуемость: набор элементов ограничен, ошибок меньше, рендеринг проще. Плата - меньшая гибкость: то, чего нет в библиотеке, показать не получится.
Генерация кода на лету даёт максимум свободы, модель может собрать почти любой интерфейс. Цена - ошибки в коде и вопросы безопасности, потому что чужой HTML или React обычно рендерят в изолированном iframe, а значит, взаимодействие с остальным приложением ограничено.
Производительность оценивать стоит по двум параметрам: насколько сложный интерфейс генерируется и сколько токенов модель тратит на структуру вместо самого ответа. Чем богаче интерфейс, тем длиннее вывод и тем выше задержка.
Какой подход выбрать под свою задачу
Простая рамка. Нужна предсказуемость и безопасность - смотрите на библиотечные подходы, к которым относится OpenUI: набор элементов известен, поведение стабильно, интеграция с локальными моделями проще. Нужна максимальная гибкость и есть ресурсы на обработку ошибок и изоляцию кода - тогда имеет смысл рассматривать генерацию интерфейсов на лету.
Intelligent UI от OpenAI - проприетарная функция внутри ChatGPT. Встроить её в своё приложение напрямую нельзя, повторить похожий опыт можно только через открытые фреймворки. Что именно OpenAI показала пользователям, разбираем в отдельном материале про Intelligent UI.
Практическая сторона: задержки, накладные расходы и оправданность сложности
Generative UI добавляет к обычному ответу несколько слоёв: структурированный вывод, валидацию, рендеринг. Каждый слой требует времени и кода. Модель тратит токены на описание интерфейса, приложение тратит ресурсы на отрисовку, разработчик тратит время на обработку ошибок формата. Против обычного текстового ответа это всегда дороже.
Когда generative UI оправдан, а когда проще остаться на тексте
Интерфейс выигрывает там, где пользователь что-то меняет или сравнивает. Калькулятор накоплений, где сумму, срок и доходность можно крутить самому. Деление счёта за ужин на шесть человек с оговоркой, что двое не заказывали алкоголь. План делового ужина по времени: что купить заранее, когда ставить горячее, когда встречать гостей. Маршрут по трём городам с отметками остановок. Примеры таких запросов к Intelligent UI.
Для объяснений, справок и коротких ответов текст остаётся быстрее: он не требует ни структуры, ни рендеринга. Модель в Intelligent UI сама выбирает формат и отвечает текстом, когда интерфейс не нужен.
Ограничения локального запуска: что нужно учитывать
Локальные модели держат формат менее стабильно, чем крупные облачные. Значит, нужны проверка схемы, повторные попытки и запасной вариант с текстовым ответом, если структура не собралась. Это дополнительная инженерия, и заметнее всего она на слабом железе: локальный инференс упирается в GPU и объём VRAM, а скорость генерации напрямую влияет на то, как быстро появится интерфейс.
Конкретных цифр по задержкам в открытых материалах о реверс-инжиниринге нет, поэтому накладные расходы стоит мерить на своих моделях и своих задачах. Универсального ответа, окупится ли структурированный вывод, не существует: для чат-помощника с редкими виджетами проще держать текст, для инструмента с формами и калькуляторами интерфейс экономит время пользователя.
Кому это нужно и что делать дальше
Тема полезна разработчикам, которые добавляют интерактивность в свои AI-продукты, и тем, кто гоняет модели локально и хочет посмотреть, как выглядит generative UI без облака. Продакт-менеджерам она даёт рамку для решения, нужны ли в интерфейсе кнопки и графики или хватит текста.
Если вы уже работаете с Ollama или LM Studio, разумный первый шаг - собрать минимальный прототип: один запрос, структурированный ответ, пара элементов рендера. Так вы увидите реальные задержки и качество на своей модели, не вкладываясь в полную интеграцию. Фреймворк OpenUI открытый, но готового продукта из коробки не даёт, и рассчитывать на мгновенный результат не стоит.