Files
smartmate/backend/agent/quick_note_graph_test.go
Losita 0b7d1b999c Version: 0.5.4.dev.260313
feat(agent): 重构随口记为模型控制码分流 + 单请求聚合规划,关闭非流式thinking并修复假成功,将随口记全流程从10s+缩短到5s左右,显著提升用户体验

路由层改为“模型控制码协议”分流(quick_note|chat),替换关键词/置信度猜测
路由命中 quick_note 时信任路由,graph 跳过二次意图判定(减少一次 LLM 调用)
新增单请求聚合规划:一次返回 title/deadline_at/priority_group/priority_reason/banter
快路径优先复用聚合结果;优先级缺失时本地兜底,避免再次触发优先级模型调用
最终回复优先使用聚合 banter,聚合路径缺失时使用固定文案,不再额外润色调用
非流式 Generate 全面显式关闭 thinking,并收紧 max_tokens/temperature(路由、JSON规划、banter)
保留并强化写库成功门槛:task_id > 0 才允许成功回包,修复“回复成功但未落库”风险
增加/更新测试:控制码解析、nonce 校验、标题提取、banter 复用与无效 task_id 防假成功
保持 OpenAI 兼容 SSE 格式与现有流式聊天链路不变
2026-03-13 18:17:57 +08:00

37 lines
816 B
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package agent
import "testing"
func TestDeriveQuickNoteTitleFromInput(t *testing.T) {
cases := []struct {
name string
input string
want string
}{
{
name: "保留核心事项并去掉尾部提醒口头语",
input: "明天上午12点我要去取快递到时候记得q我",
want: "明天上午12点我要去取快递",
},
{
name: "去掉常见前缀口头语",
input: "提醒我周五下午三点交实验报告",
want: "周五下午三点交实验报告",
},
{
name: "空输入兜底",
input: " ",
want: "这条任务",
},
}
for _, tc := range cases {
t.Run(tc.name, func(t *testing.T) {
got := deriveQuickNoteTitleFromInput(tc.input)
if got != tc.want {
t.Fatalf("title 提取不符合预期got=%q want=%q", got, tc.want)
}
})
}
}