thesysdev/openui

The Open Standard for Generative UI

What it solves

OpenUI 提供了一种直接从 LLM 输出生成结构化、交互式用户界面 (UI) 的方法。它解决了使用 JSON 进行生成式 UI 时产生的高 Token 成本和延迟问题,同时确保模型的输出被限制在预定义的核准组件集合中。

How it works

OpenUI 使用一种名为 OpenUI Lang 的自定义、流式传输优先的语言。其流程如下:开发者使用 Zod schemas 进行类型合约,定义一个组件库 (library),从该库生成系统提示词 (system prompt) 以指示 LLM,然后流式传输模型的输出。一个专门的渲染器会实时逐步解析该流,从而在 Token 到达时将它们转换为实时的 React、Vue 或 Svelte 组件。

Who it’s for

它是为构建 AI 助手、Copilot 和交互式产品流程的开发者设计的,这些流程需要 LLM 渲染复杂的 UI 元素,如图表、表单和表格,而不仅仅是纯文本。

Highlights

  • Token Efficiency: 使用的 Token 比基于 JSON 的格式少至 67%,从而降低了成本和延迟。
  • Multi-Framework Support: 提供 React、Vue 和 Svelte 的运行时 (runtime)。
  • Prebuilt Components: 提供内置库,包含常用的 UI 元素,如表格和布局。
  • Streaming-First: 在 LLM 流式传输 Token 时增量式地渲染 UI 组件。
  • Library-Driven Prompts: 根据库中可用的组件自动生成模型指令。