Skip to content

evoke-chat 0.5.0 · 服务端事件流对接补强(parts 交错 / args 流式 / 引用锚点 / 时间线 / resultType)

Choose a tag to compare

@willove willove released this 08 Oct 18:25
· 5 commits to main since this release

cumulus-next(Go 侧 RAG/agent 后端)以真实 SSE 事件流接入后的表达力补强:接入本身无阻塞,但四类信息在旧消息模型里落不到位——正文与工具的交错、入参流式、行内引用、内部流水线轨迹。本版把这四件事补成一等能力,全部向后兼容(老消息零改动)。

新增

  • parts 消息模型(交错渲染):appendContent / appendThinkContent / startToolCall 自动记录到达顺序(message.parts),组件按序交错渲染——「正文 → 工具卡 → 正文」的 RAG 常见形状不再是模板写死的「工具在前」。content / thinkContent / toolCalls 降为平面投影,复制、朗读、会话重放全部照旧;无 parts 的老消息走原固定顺序。
  • 工具入参流式(appendToolCallArgs):长参数(SQL / 查询 DSL / 写操作 payload)JSON 分片逐片可见,卡片自动展开、光标、贴底与输出流式同款待遇;收尾自动 parse 回对象,半截 JSON 保留原文诚实展示。
  • 行内引用锚点(anchorSource):正文里「根据第 3 篇」生成可点上标(source: 协议),点击联动来源卡高亮——citations 仍是回合级语义,行内关系交给锚点。主入口导出 anchorSource(refId, text?)。
  • 流水线时间线(progressLog):progress 是「当前一句话」,progressLog 是完整轨迹(理解 → 检索 → 核对 → 路由 → 合成…)。当前阶段常显一行,历史收进「前 N 个阶段」折叠,展开是紧凑日志、当前行亮一档。appendProgress / clearProgress。
  • 工具结果非文本默认渲染(resultType):image 认 { url, alt? } 渲限高图,file 认 { name, url?, size? } 渲一行文件卡(按后缀图标);URL 走与正文图片同款的 http/https/data 白名单,其余退文本不留破图。
  • 模型归属(model / provider):多模型路由时底部读数行显示 provider/model(hover 显隐与耗时/用量同组);引擎只透传不解析。
  • ChatThreads timeFormat:时间列转义口,宿主给格式化函数(如 YYYY-MM-DD HH:mm:ss),缺省回落浏览器本地日期。

事件契约新增:tool/args、assistant/progress-log、tool/result.resultType、assistant/message.model/provider。

测试 677 项全绿(新增 21 项);AI 契约 16 条配方;文档站补交错消息 / 时间线 / 非文本结果三组 demo。