SuperAPI AI 工具集

widgets-ui

前端与建站

查看项目

更新于 10-16 07:09

技能介绍

用途

widgets-ui 是一个基于 JSON 的声明式 UI 渲染方案,面向 React/Next.js 项目,由 ui.inference.sh 提供。它的核心目标是把智能体返回的结构化响应渲染成丰富的交互式 UI,例如表单、卡片和各类可交互组件。开发者无需为每种响应手写 JSX,只需提供符合 schema 的 widget JSON 对象即可。

主要能力

该技能基于 WidgetRenderer 组件和配套的 Widget、WidgetAction 类型定义工作。支持的组件类型包括:

  • 布局:row、col、box(box 支持 background、padding、radius 等属性)。
  • 排版:title、text、caption、label。
  • 交互:button、input、textarea、select、checkbox,按钮可通过 onClickAction 触发 submit、click 等动作。
  • 展示:badge、icon、image、divider。

此外还提供多种渐变背景,包括 gradient-ocean、gradient-sunset、gradient-purple、gradient-cool、gradient-midnight。

使用方式

安装组件:

npx shadcn@latest add https://ui.inference.sh/r/widgets.json

安装配套 CLI 技能:

npx skills add belt-sh/cli

基础用法:从 @/registry/blocks/widgets/widget-renderer 引入 WidgetRenderer,从 @/registry/blocks/widgets/types 引入类型,构造 widget 对象后传入组件,并通过 onAction 回调处理交互。示例:

import { WidgetRenderer } from "@/registry/blocks/widgets/widget-renderer"
import type { Widget, WidgetAction } from "@/registry/blocks/widgets/types"

const widget: Widget = {
  type: 'ui',
  title: 'My Widget',
  children: [
    { type: 'text', value: 'Hello World' },
    { type: 'button', label: 'Click me', onClickAction: { type: 'click' } },
  ],
}

<WidgetRenderer
  widget={widget}
  onAction={(action, formData) => console.log(action, formData)}
/>

表单场景可设置 asForm: true,并通过 onAction 中的 submit 类型获取表单数据。动作处理示例:

const handleAction = (action: WidgetAction, formData?: WidgetFormData) => {
  switch (action.type) {
    case 'submit':
      console.log('Form data:', formData)
      break
    case 'click':
      console.log('Button clicked')
      break
  }
}

相关技能还包括 agent-ui、chat-ui、tools-ui,可分别通过 npx skills add inference-sh/skills@agent-ui、@chat-ui、@tools-ui 安装。组件文档位于 ui.inference.sh/blocks/widgets。

适用场景

适合需要让智能体根据结构化响应动态生成交互界面的应用,例如生成联系人表单、航班信息卡片等;也可用于聊天或智能体场景中即时渲染 UI 组件。

限制

资料主要提供组件类型、安装命令与代码示例,未说明完整的属性列表、版本兼容范围、浏览器支持、收费与价格等信息,这些内容暂未提供。