4.2 KiB
description, kind
| description | kind |
|---|---|
| Web GUI 的逐消息反馈:已定稿助手消息动作行中的 Like/Dislike 对与可选备注;供反馈体验的用户与维护者阅读。 | package-reference |
@deepseek-ai/dsh-client-ui-message-feedback
English | 中文
概述
本包为 Web GUI 增加逐消息反馈:一对 Like/Dislike 按钮加一个可选备注,作为已定稿助手消息动作条的 feedback 条目贡献。它渲染在每个轮次的收尾助手消息上——多步骤轮次中较早的步骤产出工具行而非可评分正文。每个 Session 一个控制器支撑该 Session 内所有消息的控件,因此一次列表读取即可填充整段对话。反馈是 sidecar:评分与备注绝不进入会话日志、模型上下文或遥测。
目录
使用本包
与 ui-conversation 一起挂载本插件;Like/Dislike 对随即出现在每个轮次收尾助手消息的动作行中,位于复制与分支之间。再次点击已记录的评分会撤回反馈;切换到另一侧会保留既有备注。备注编辑器是一个锚定在其触发按钮下方的对话框浮层,因此无论编辑器是否打开,该行都保持单行。
失败
评分或列表加载失败在行内展示;备注保存失败在浮层内展示,面板保持打开以便修正草稿。只有已定稿的消息能到达该槽位——被中断冻结的部分输出不带 messageId,因此没有反馈控件。
理解实现
实现细节——点击展开
本包贡献 conversation.chat.assistant-actions 的 feedback 条目(order 10),由 ui-conversation 声明并渲染在已定稿助手消息的 IconActions 行内。每个 Session 一个 MessageFeedbackController 支撑该 Session 内所有消息的控件,因此一次 messageFeedback.list 读取即可填充整段对话;该读取延迟到首次 hover 或 focus 才发起,而非挂载时触发。变更经 ctx.remote.messageFeedback 提交,按条目的比较并交换由宿主负责。每次 put 与 delete 都携带本控制器最后观察到的 version;version-conflict 响应带回权威条目,因此竞争失败时直接用该响应本身对账,无需重新拉取。变更按 Session 串行,排队中的操作总是与已提交的版本比较。
进一步探索
当反馈面不够用时阅读以下页面。它们从浏览器条带进入 sidecar 后端与会话外壳。
- dsh-message-feedback——拥有按条目比较并交换的 sidecar 后端。
- ui-conversation——声明助手动作条并渲染动作行。
- 客户端包映射——相邻的浏览器 UI 包。
模型体验
无。反馈是 sidecar,不进入 append-only 的 Session 日志、模型上下文或遥测;任何评分与备注对模型都不可见。
KV Cache 影响
无;任何反馈变更都不触碰历史尾部。
已知限制与延期工作
这些限制界定了当前反馈表面。它们是当前包约束,不是通用评分对比或任务积压。
- 备注大小是宿主策略——部署方配置
maxNoteBytes(Web bundle 中为 8192),超长备注由宿主以note-too-large拒绝。编辑器不预先校验该上限,因此超长备注在保存时才失败,而不是在输入过程中。 - 无跨标签页推送——另一个标签页的评分要等到重连或下一次冲突响应才可见,不会立即出现;该 sidecar 不发布实时帧。
- 仅限对话视图——trajectory 与 waterfall 视图不渲染反馈控件,尽管它们的助手节点也带有相同的
messageId。
开发备注
维护者的工作上下文——点击展开
无。