uiUI 组件系统
对比

流式与生成状态

Streaming / Generation Status

告诉用户系统是在等待、输出,还是已经停止。

交互预览实时预览

组件图鉴帮助你理解每一种交互。

等待开始
开始、停止,再重新生成
使用代码安装指南 ↗
app.mjs
import { mount } from '@sofish/ui/browser';

const view = mount(
  document.querySelector('#example'),
  'stream',
  {
    "demo": true
  }
);

view.element.addEventListener('ui:start', event => {
  console.log(event.detail.value);
});

// view.update({ ...nextProps });
// view.destroy();

什么时候用

内容逐步到达或任务耗时不可预知。

什么时候不用

没有真实进度数据时不要展示虚构百分比。

COMPONENT API

属性与事件

传入业务数据,通过事件连接你的应用。

属性默认值
output"组件图鉴帮助你理解每一种交互。"
text"组件图鉴帮助你理解每一种交互。过程可以结束,结果依然可以回看。"
interval60
sourcenull
demofalse

事件

ui:start ui:chunk ui:complete ui:stop ui:error

安装、生命周期与完整 API ↗

INTERACTION NOTES

交互与可访问性

  • 不要逐 token 播报。
  • 停止按钮有明确名称,完成状态可被感知。

和相似组件的区别

生成状态是短暂过程,生成的正文才是可回看的结果。

RESEARCH & ALTERNATIVES

官方实现映射

以下是上游生态对同类交互的实现。上方运行的是 UI 自己的组件。

AI ElementsChat
需组合

结合消息流与运行状态实现。

需组合

提供确定或不确定进度;生成状态需应用组合。

StreamdownStreamdown
需组合

处理未闭合 Markdown;生成状态由外层应用传入。

需组合

流式内容和适配器接入。

关键状态

等待首段输出中已停止完成失败

React / Next.js · 来源核验

一起了解

消息与富文本 ↗错误、重试与中断 ↗工具调用与结果 ↗