图片、语音、文件与富内容输出
BailingHub 可以接收图片、语音和文件输入,也可以在最终回复中返回 Markdown、附件链接和声明式富内容。上传、模型理解和前端展示是三件不同的事,应分别配置和校验。
聊天入口上传后先由媒体存储生成受控素材地址,再由路由输入策略决定如何处理:
- 图片可以识别或交给兼容的多模态模型;
- 语音可以转写或交给兼容模型;
- 文件可以作为附件保留,是否抽取正文取决于已配置的处理能力;
- 未配置对应模型或策略时,应明确降级,而不是假装已经理解内容。
具体格式、大小和数量限制属于版本化 HTTP 契约,请以固定版本文档为准。
本地 Agent 的图片附件空间
Section titled “本地 Agent 的图片附件空间”本地生成或用户明确指定用于业务的图片,可以由宿主登记为当前会话附件,上传后取得 URL,再交给已授权的业务工具设置活动封面或商品图片。宿主需要显式接入附件目录与原上传记录;仅用于聊天理解的图片不会自动登记或上传。图片生成、附件上传和业务写入分别配置与执行。
附件空间默认关闭。管理员在工作空间启用并选择存储,当前支持 PNG、JPEG、WebP,单图最多 6 MiB、每批最多 8 张,可配置更小上限。图片采用公开读取,适合公开展示素材;文件保留由部署方管理,会话结束或授权撤销不会自动删除文件。
上传关联当前会话与轮次,业务 run_id 可选,无需为了上传创建业务任务。断网后先查询原上传 ID,已完成项复用原 URL;后续业务写入继续遵循原授权和审批。完整配置见生成图片与附件空间。
| 内容 | 官方 Widget 行为 | 额外依赖 |
|---|---|---|
| Markdown、表格 | 原生安全展示 | 无 |
| 图片与文件链接 | 按最终回复和附件结构展示 | 无 |
| 图表 | 识别声明式 fenced payload,交给宿主预注册的可信渲染器 | 图表库由业务页面选择并安装 |
bailing-form |
官方 Widget 原生渲染受限字段、校验、提交与回执 | 无动态表单运行时 |
模型只输出声明式数据,不能输出或选择要执行的 JavaScript、HTML、CSS、远程脚本或组件代码。未注册类型、非法 JSON、超限数据或渲染错误必须安全回退为普通代码文本。
bailing-form 不是审批
Section titled “bailing-form 不是审批”bailing-form 用于收集普通信息或让用户选择。源回答已经进入 done;用户提交或取消后,Widget 在同一 thread 创建一个新的用户轮次和新 job。
它不能代替:
- 高风险工具审批;
- 登录、身份认证或授权;
- 支付确认或秘密凭据采集;
- 业务接口执行前的最终权限校验。
表单值仍是不可信用户输入。需要产生业务副作用时,新一轮任务仍必须经过正常的能力范围、审批和业务授权。
自建聊天界面要在请求中声明自己实际支持的渲染类型,只在完整 done.reply 到达后解析 fenced payload。不要在 delta 阶段挂载图表或表单,也不要使用 eval 或 innerHTML 解释模型输出。