Router reconstruct - #237
Conversation
- segmenter.yaml 独立配置文件(不污染 model.yaml) - embedder: onnx 启动语义模型 默认使用bge-small-zh-v1.5 支持自动下载 - topic_tracking: true 启动主题追踪 - onnx_model: xxx 支持手动配置下载模型 add TopicGraph feature with ollama fix: PR itmisx#219 issue 全部修复 1. modelPin 判断: m.modelPin == "" || m.modelPin == "auto" (原恒为 false) 2. activeModelID 兜底: else 分支加回退逻辑 3. CI: go vet self-assignment 删除 + TF-IDF 首篇文档向量全零修复 4. 话题切换冲突: 移除 TopicSwitch 提示(保留 TopicGraph 用于路由) 5. ONNX 路径: ortLibName build tag 分平台 + ORT 引擎路径改为 ~/.deepx/ocr/ 6. ONNX mean pooling: 按 attention_mask 加权平均 + 归一化 7. 阈值分档: adjustedNewTopicThreshold() 按 embedder 类型返回不同值 8. token_type_ids: 补充缺失的 ONNX 模型输入(全零张量)
|
@yu-zhy tui/model.go:1341 起: if m.router != nil { 而 router.Decide 的决策链(agent/router/router.go)是:
没有关键词那一环。 95 条 complexKeywords 在启用 router 后完全不参与决策。 结合下面第二条(ONNX 加载不了),实际效果是: ▎ 「重构整个认证模块,拆成三层」→ 语义匹配失效 → 不足 500 字 → flash 而当前 main 会正确判成 pro。这是路由质量的直接倒退,而且是静默的。 🔴 二、ONNX 仍然加载不了(#219 就有,未修) bge-small-zh-v1.5 是 ONNX external-data 格式:model.onnx 只有 41 KB 计算图,90 MB 权重在 model.onnx_data 里。PR 只下载前者。我上次实测: ❌ onnxruntime error [code 6]: filesystem error: in file_size: 错误被 embedder, _ = agent.NewEmbedder(...) 吞掉 → embedder 为 nil → HasEmbedder() false → 语义匹配整条路径永不执行。 于是第一条的后果就坐实了:router 启用 = 只剩「长度 > 500」这一条规则。 🔴 三、agent 包的测试编译不过 vet: agent/compact_cooldown_test.go:89:103: not enough arguments in call to StartStream StartStream 加了 reasoningEffort string 参数,调用方没跟着改。 go build ./... 能过(生产代码),但 go test ./agent/ build failed —— 说明作者在这个分支上从没跑过 agent 的测试。#219 至少还能编译(只是 3 个红的)。 🟡 四、四档匹配是「先到先得」,不是「最相似」 matcher.go 的 Match() 按 simple → medium → complex → deep 顺序遍历,谁先越过 0.6 就返回谁: for i := range m.groups { 而 simple 排第一。一个架构任务只要碰巧和某条 simple 语句(比如「查看代码定义和简单的搜索匹配」)过线,就被判成 flash —— 整个排序系统性偏向最便宜的档。 正确做法是取相似度最高的那一档,而不是固定顺序里第一个过线的。 🟡 五、阈值仍是 0.6,对 bge 太高 我上次实测 bge-small-zh 在这套语料上:pro 组中位 0.526、最高 0.631。0.6 只能捞到 13 条里的 1 条。最优阈值在 0.45 附近。 四档共用同一个 0.6,更没道理 —— 每档的语句风格不同,阈值本该各自标定。 |
1、建议重构模型路由策略实现,支持用户自定义模型路由语义元句 2、支持模型路由回降机制,进一步降低成本 3、优化启动速度,可异步加载语义模型 Fixs itmisx#236
e32ca13 to
a37aa0b
Compare
Uh oh!
There was an error while loading. Please reload this page.