SuperAPI AI 工具集

ai-sdk-ui

前端与建站

查看项目

更新于 10-15 17:26

技能介绍

用途:AI SDK UI 提供框架无关的 Hooks,用于构建带实时流式与状态管理的聊天、补全和助手应用,React 等框架有对应包,如 @ai-sdk/react。

主要能力:

  • 三个核心 Hook,按需选择:useChat 适合多轮对话与工具调用 UI,使用带 parts(文本、工具、文件)的消息;useObject 适合需要 Zod schema 的类型化对象流,如表单、仪表盘;useCompletion 适合单轮纯文本生成,如自动补全。
  • 状态管理:status 取值包括 submitted、streaming、ready、error,可用 stop 中断、reload 重试、regenerate 重新生成。
  • 消息操作:通过 setMessages 删除或编辑消息;支持文件附件,在 sendMessage 时传 files。
  • 请求定制:sendMessage 支持按请求传 headers、body、metadata;也可在 transport 层配置 DefaultChatTransport。
  • 消息元数据:服务端可在流中附加 createdAt、model、totalTokens 等元信息,客户端从 message.metadata 读取。
  • 多模态 parts:消息使用 parts 数组渲染 text、file、tool-invocation、tool-result、reasoning、source-url、source-document 等类型。
  • 服务端:以 Next.js App Router 为例,用 streamText 与 convertToModelMessages 生成结果,并通过 result.toUIMessageStreamResponse() 返回 UI 消息流;可开启 sendReasoning、sendSources。
  • 事件回调:useChat 支持 onFinish、onError、onData。
  • 工具类型推断:用 InferUITools、InferAgentUIMessage 等辅助类型。
  • 性能:React 下可用 experimental_throttle 节流更新。
  • 纯文本流:TextStreamChatTransport 可用,但该传输不支持工具、用量与结束原因。

离线扫描:可在聊天 UI 迁移或评审前运行 python3 skills/ai-sdk-ui/scripts/ai_stack_scan.py --root <repo> --pretty,输出 ai_stack_scan.v1,默认不联网、跳过符号链接,标记 message.content、旧版 useChat 辅助函数、缺少 @ai-sdk/react 依赖、过时流响应辅助等风险;信号需对照当前文档核实,完整 JSON 建议保留本地,仅外发脱敏后的具体信号。

适用场景:聊天机器人、助手、工具调用 UI、结构化数据看板、自动补全等。框架支持 React、Vue、Svelte、Angular 及社区的 SolidJS 包。另提供 AI Elements 预制 shadcn/ui 组件。

限制:文中未提供价格、收费、平台与效果数据;TextStreamChatTransport 不支持工具、用量和结束原因;具体版本行为以 AI SDK 官方文档与源码为准。