thesysdev/openui
The Open Standard for Generative UI
What it solves
OpenUI 提供了一種直接從 LLM 輸出生成結構化、互動式使用者介面 (UI) 的方法。它解決了使用 JSON 進行生成式 UI 時產生的高 Token 成本和延遲問題,同時確保模型的輸出被限制在預定義的一組核准組件中。
How it works
OpenUI 使用一種名為 OpenUI Lang 的自定義、優先考慮串流的語言。其流程如下:開發者定義組件庫 (使用 Zod schema 進行型別合約),從該庫生成系統提示詞 (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)。
- Streaming-First: 在 LLM 串流 Token 時增量式地渲染 UI 組件。
- Library-Driven Prompts: 根據庫中可用的組件自動生成模型指令。
- Prebuilt Components: 包含常用 UI 元素(如表格和佈局)的內建庫。