UStackUStack
OpenUI icon

OpenUI

OpenUI 是生成式 UI 的開放標準,讓 AI 應用以已註冊元件建構結構化使用者介面回應。

OpenUI

OpenUI 是什麼?

OpenUI 被呈現為「生成式 UI 的開放標準」。網站將其定位為一種開源方法,用於建構 AI 應用,能以使用者介面回應,而非僅限純文字。

在實務層面,OpenUI 包含開發者 CLI 以及一組 React 導向的基元,用於定義元件並將其註冊至 AI 應用可用的元件庫中,作為 UI 建構模組。

主要功能

  • 生成式 UI 的開源工具:頁面將 OpenUI 定位為專注讓 AI 應用回應以 UI 形式呈現的開放標準。
  • 建立專案的 CLI:範例顯示使用 npx @openuidev/cli@latest create 來搭建新應用/工作流程。
  • 元件定義 API:頁面展示 defineComponent 用於命名元件並描述其輸入屬性(包含 schema 定義)。
  • UI 建構模組的元件庫註冊:範例使用 createLibrary 並匯出 library,表示一種將元件註冊為可重用集合的方式。
  • 基於 schema 的屬性(zod):範例匯入 zod 並以 z.object(...) 定義元件屬性,包含透過 z.string().url() 進行 URL 驗證。

如何使用 OpenUI

頁面展示的典型設定,從使用 CLI 透過 npx @openuidev/cli@latest create 建立專案開始。搭建後,使用 defineComponent 定義 UI 元件,包含描述各元件預期輸入的屬性 schema。

接著,使用 createLibrary 將這些元件註冊至元件庫物件(匯出為 library)。該元件庫可供 AI 應用參照,讓回應以已註冊元件呈現為結構化 UI。

使用案例

  • AI 生成的 UI 區段(例如輪播):定義 Carousel 元件與 CarouselCard 元件,包含明確屬性 schema(標題、圖片與 CTA 標籤),讓 AI 輸出具一致結構的 UI 輪播。
  • AI 的結構化清單:使用元件屬性(卡片定義陣列、選用欄位如描述,以及驗證過的 URL),確保 AI 產生的 UI 元素符合預期資料形狀。
  • 為 AI 應用建構可重用 UI 元件庫:將多個 UI 元件集中至單一匯出 library,讓團隊能隨時間成長共享的「UI 詞彙」。
  • UI 渲染的類型化介面:套用 zod schema 驗證(例如確保 imageUrl 為 URL 字串),降低 AI 輸出導致 UI 渲染錯誤的機率。

常見問題

  • OpenUI 只適用 React 嗎? 提供的範例使用 @openuidev/react-lang 並展示 React 風格的元件使用,因此網站範例顯示 React 導向方法,但原始內容未明確聲稱支援更廣泛的框架。

  • 如何開始使用 OpenUI 建構? 頁面展示從 CLI 使用 npx @openuidev/cli@latest create 開始,接著以 defineComponent 定義元件並註冊至 library

  • 在此脈絡下「生成式 UI」意味什麼? 網站描述 OpenUI 讓 AI 應用「以你的 UI 回應」,意指 AI 輸出可渲染為由已註冊元件建構的 UI 結構。

  • 元件輸入如何指定? 範例中,元件屬性使用 zod schema 定義(例如 z.object({ ... })z.string().url())。

  • 使用前需要註冊元件嗎? 範例包含 createLibrary 並匯出 library,顯示需將元件組裝並註冊至元件庫供 AI 應用使用。

替代方案

  • 自行建構 UI schema + 渲染器:不採用開放標準,可設計自己的 JSON/UI schema 與將結構化 AI 輸出轉換為元件的渲染器。此方式不同之處在於需自行定義端到端協議。
  • 無「開放標準」的 UI 元件 schema 函式庫:有些方法驗證 AI 輸出並對應至 UI 元件,但可能不提供相同的「生成式 UI 標準」定位或專用 CLI/工作流程。
  • 通用 UI 生成框架(非標準化):從提示直接生成 UI 的工具,可能較少著重將 UI 元件註冊為類型化元件庫,而更偏向產生程式碼或版面,改變工作流程從「元件庫」轉為「提示到版面/程式碼」。
OpenUI | UStack