Об этом проекте
OpenUI — это фреймворк с открытым исходным кодом для создания генеративных UI-приложений, в которых модели ИИ создают структурированные интерактивные пользовательские интерфейсы, а не обычный текст. В его основе лежит OpenUI Lang — компактный язык с поддержкой потоковой передачи, специально разработанный для вывода UI, генерируемого моделями. Фреймворк не зависит от конкретного рендерера, то есть не привязан к одному фронтенд-фреймворку, хотя официально поддерживает React, а также имеет поддерживаемые сообществом привязки для Vue 3 и Svelte 5.
Основной рабочий процесс прост: разработчики определяют или переиспользуют библиотеку компонентов (графики, формы, таблицы, макеты и т.д.), OpenUI генерирует системный промпт из этой библиотеки, промпт отправляется в LLM, и модель передает вывод OpenUI Lang обратно клиенту, где рендерер постепенно разбирает и отображает UI по мере поступления токенов. Такой подход с потоковой передачей означает, что пользователи видят, как интерфейс строится в реальном времени, а не ждут полного ответа.
Ключевое отличие — эффективность использования токенов. Бенчмарки, измеренные с помощью tiktoken (энкодер GPT-5) в семи сценариях UI, показывают, что OpenUI Lang использует до 67% меньше токенов, чем эквивалентные форматы на основе JSON, со средним сокращением примерно на 52,8% по сравнению с JSON-Render от Vercel и на 51,7% по сравнению с Thesys C1 JSON. Меньшее количество токенов означает снижение задержки, уменьшение затрат на API и более быстрое время до первого пикселя.
Проект организован как монорепозиторий с несколькими пакетами. @openuidev/lang-core обеспечивает независимый от фреймворка парсинг, генерацию промптов и выполнение во время выполнения без зависимости от React, Vue или Svelte. @openuidev/react-lang обрабатывает среды выполнения рендеринга React, определения библиотек компонентов и генерацию промптов. @openuidev/react-headless предлагает управление состоянием чата без готового UI и адаптеры потоковой передачи для команд, которые хотят использовать свой собственный интерфейс. @openuidev/react-ui предоставляет готовые макеты чата и две встроенные библиотеки компонентов для быстрого создания работающего чата. @openuidev/react-email добавляет определения компонентов React Email для электронных писем, генерируемых моделями. @openuidev/langchain интегрируется с агентами LangChain и LangGraph, передавая OpenUI через AG-UI. @openuidev/browser-bundle поставляет готовый пакет для подключения через тег script для CDN, iframe и встраивания без сборки. @openuidev/cli создает новые проекты и генерирует системные промпты или JSON-схемы из определений библиотек.
Контракты компонентов определяются с помощью схем Zod, что обеспечивает типизированные свойства и структуру заранее. Фреймворк поддерживает встроенную выборку данных, вывод на несколько платформ (веб, мобильные устройства, электронная почта) и единообразное форматирование вывода. Playground доступен на openui.com/playground для живого экспериментирования с библиотекой компонентов по умолчанию.
OpenUI также включает Agent Skill, который интегрируется с ИИ-ассистентами для кодирования, такими как Claude Code, Codex, Cursor и Copilot, охватывая проектирование библиотек компонентов, синтаксис OpenUI Lang, генерацию системных промптов, рендерер, пакеты SDK и отладку некорректного вывода LLM. Проект лицензирован под MIT и поддерживается Thesys, с активным сообществом в Discord и растущим списком пользователей.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.