json-render
“
一个将 AI 生成的 JSON 数据渲染为用户界面(UI)的工具,其核心理念是“AI → JSON → UI”,旨在让用户通过自然语言描述生成界面,同时确保生成的界面是可预测、安全且符合开发者定义的组件规范的。
Github地址
https://github.com/vercel-labs/json-render
在线体验
https://json-render.dev
功能特点
-
核心功能:
-
定义组件目录:开发者可以创建一个组件目录,明确 AI 在生成界面时可以使用的组件及其属性。例如,可以定义一个卡片组件(Card)和一个指标组件(Metric),并规定它们的属性和是否可以包含子组件。
-
注册组件渲染方式:通过定义 React 组件,将 JSON 数据中的组件映射为实际的 UI 元素。比如,将卡片组件渲染为一个带有标题和子内容的 HTML 结构。
-
AI 生成 JSON:用户通过自然语言描述需求,AI 根据预定义的组件目录生成符合规范的 JSON 数据,然后通过项目提供的工具将其渲染为界面。
-
优势特点:
-
条件可见性:可以根据数据、用户权限或复杂逻辑动态显示或隐藏组件。例如,只有在满足特定条件时才显示某个警告信息或管理面板。
-
丰富的动作支持:允许为组件定义复杂动作,包括确认对话框和回调函数。比如,退款按钮可以触发一个确认对话框,并在成功或失败时执行相应的操作。
-
内置验证:支持对用户输入进行验证,确保数据的正确性和完整性。例如,可以验证电子邮件地址是否符合格式要求。
-
安全可控:AI 的输出被严格限制在开发者定义的组件目录内,避免了生成不符合预期或存在安全风险的界面。
-
高效渲染:支持流式渲染,即在 AI 响应过程中逐步渲染界面,提高了用户体验和性能。
-
丰富的功能支持:
使用方法
-
快速开始:
-
安装依赖:通过 npm 安装
@json-render/core和@json-render/react包。 -
定义组件目录:使用
createCatalog函数创建组件目录,定义组件的属性和行为。 -
注册组件渲染方式:创建一个组件注册表,将 JSON 数据中的组件映射为 React 组件。
-
让 AI 生成界面:通过
useUIStream钩子发送用户提示给 AI,并使用Renderer组件将生成的 JSON 数据渲染为界面。