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 格式与现有流式聊天链路不变
37 lines
816 B
Go
37 lines
816 B
Go
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)
|
||
}
|
||
})
|
||
}
|
||
}
|