跳转到内容

图片、语音、文件与富内容输出

BailingHub 可以接收图片、语音和文件输入,也可以在最终回复中返回 Markdown、附件链接和声明式富内容。上传、模型理解和前端展示是三件不同的事,应分别配置和校验。

聊天入口上传后先由媒体存储生成受控素材地址,再由路由输入策略决定如何处理:

  • 图片可以识别或交给兼容的多模态模型;
  • 语音可以转写或交给兼容模型;
  • 文件可以作为附件保留,是否抽取正文取决于已配置的处理能力;
  • 未配置对应模型或策略时,应明确降级,而不是假装已经理解内容。

具体格式、大小和数量限制属于版本化 HTTP 契约,请以固定版本文档为准。

内容 官方 Widget 行为 额外依赖
Markdown、表格 原生安全展示
图片与文件链接 按最终回复和附件结构展示
图表 识别声明式 fenced payload,交给宿主预注册的可信渲染器 图表库由业务页面选择并安装
bailing-form 官方 Widget 原生渲染受限字段、校验、提交与回执 无动态表单运行时

模型只输出声明式数据,不能输出或选择要执行的 JavaScript、HTML、CSS、远程脚本或组件代码。未注册类型、非法 JSON、超限数据或渲染错误必须安全回退为普通代码文本。

bailing-form 用于收集普通信息或让用户选择。源回答已经进入 done;用户提交或取消后,Widget 在同一 thread 创建一个新的用户轮次和新 job。

它不能代替:

  • 高风险工具审批;
  • 登录、身份认证或授权;
  • 支付确认或秘密凭据采集;
  • 业务接口执行前的最终权限校验。

表单值仍是不可信用户输入。需要产生业务副作用时,新一轮任务仍必须经过正常的能力范围、审批和业务授权。

自建聊天界面要在请求中声明自己实际支持的渲染类型,只在完整 done.reply 到达后解析 fenced payload。不要在 delta 阶段挂载图表或表单,也不要使用 evalinnerHTML 解释模型输出。