这个项目能做什么
OpenUI是一个用于构建生成式UI应用的开源框架,其中AI模型生成结构化的交互式用户界面,而非纯文本。其核心是OpenUI Lang,一种专为模型生成的UI输出设计的紧凑、流优先语言。该框架与渲染器无关,意味着它不绑定于单一前端框架,尽管它官方支持React,并有社区维护的Vue 3和Svelte 5绑定。
核心工作流程简单:开发者定义或复用组件库(如图表、表单、表格、布局等),OpenUI从该库生成系统提示,提示发送给LLM,模型将OpenUI Lang输出流式传输回客户端,渲染器在令牌到达时逐步解析并渲染UI。这种流优先设计使用户能实时看到界面构建,而无需等待完整响应。
关键区别在于令牌效率。使用tiktoken(GPT-5编码器)在七个UI场景中测量的基准显示,OpenUI Lang比等效的基于JSON的格式少用高达67%的令牌,与Vercel的JSON-Render相比平均减少约52.8%,与Thesys C1 JSON相比减少51.7%。更低的令牌数转化为更低的延迟、更低的API成本和更快的首像素时间。
该项目组织为包含多个包的monorepo。@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代理,通过AG-UI流式传输OpenUI。@openuidev/browser-bundle提供预构建的脚本标签包,用于CDN、iframe和无构建嵌入。@openuidev/cli脚手架新项目,并从库定义生成系统提示或JSON模式。
组件契约使用Zod模式定义,提供类型化属性和结构。框架支持内置数据获取、多平台输出(Web、移动、电子邮件)和一致的输出格式。Playground可在openui.com/playground使用,用于实时实验默认组件库。
OpenUI还附带一个Agent Skill,集成AI编码助手如Claude Code、Codex、Cursor和Copilot,涵盖组件库设计、OpenUI Lang语法、系统提示生成、渲染器、SDK包和调试格式错误的LLM输出。该项目采用MIT许可,由Thesys维护,拥有活跃的Discord社区和不断增长的采用者列表。
评论
0 评分人数达到10人后显示
登录后参与讨论。