详细解释
Semantic Router(语义路由器) 一句话定义:以前的路由靠 if-else 关键词匹配(if query 含「退款」→ 走退款流程),LLM 时代的路由靠 embedding 向量算相似度——把 100 个预设路由类别的种子示例先 embedding 存起来,新的用户查询 embedding 之后和 100 个类别比 cosine,选相似度最高的那个路由过去。关键词匹配会被「我想退了这个东西可以吗」这种口语化变体干掉;语义路由不管措辞怎么变,只要意思是退款就会命中退款路由,命中准确率从 80% 出头提升到 95% 以上。
Semantic Router 的工程化概念由 Aurelio AI 团队 2023 年底在同名开源库(semantic-router)中首次固化,但思想本身早就在各类 RAG 和 Agent 系统里以各种名字存在了——也叫 Semantic Layer、Intent Router、Query Classifier 等,本质都是同一个东西。它通常不是一个独立产品,而是嵌在 LLM API 网关 / RAG 流水线最前面的一层,延迟只有 20ms 至 50ms(一次 embedding 计算的耗时),是整个系统里 ROI 最高的 100 行代码。
唯元智创 API 网关已经内置了语义路由模块,不需要自己写:在控制台定义「路由名称 + 5 至 10 条种子示例 + 命中后的动作(调哪个知识库 / 走哪个 Prompt 模板 / 调哪个工具链 / 转哪个人工队列)」,SDK 层面完全透明,业务方调用同一个 Chat Completions 接口,网关自动在毫秒级完成语义路由分流。
语义路由的五个典型生产用例(从易到难,ROI 递减但依然正)
| 用例 | 路由目标 | 每条路由需要的种子示例数 | 实际收益 |
|---|---|---|---|
| ① 知识库分流 | 不同的知识库(合同库 / 产品库 / HR 政策库 / 财务 FAQ)分别建独立向量库,查询先路由到对应库再检索,避免跨库召回噪声 | 每库 5 至 10 条 | 检索准确率 +15%,召回 token 数 -30%,成本下降 |
| ② 模型大小分流 | 简单问题(FAQ、寒暄、格式化)→ 8B 小模型;复杂问题(推理、写作、代码)→ 强模型 | 每类 10 至 20 条 | 整体 token 成本 -60% 至 -80%,P50 延迟下降 |
| ③ 安全合规拦截 | 命中「越狱提示 / 医疗法律建议 / 索要敏感数据」路由 → 直接拦截并返回固定话术,不进入后续链路 | 每类 20 至 50 条(越多越好) | Guardrails 误拦截率从关键词方案的 15% 降到 3% 以内 |
| ④ 工具/Agent 路由 | 是否需要调工具、调哪个工具(搜索 / 数据库 / 计算器 / 邮件),先路由再执行,减少 Function Calling 的幻觉 | 每个工具 10 条 | Function Calling 调用准确率 +20%,减少不必要的工具调用开销 |
| ⑤ 人工坐席分流 | 复杂投诉 / 高 VIP / 敏感行业问题 → 直接转人工,不浪费 LLM 瞎折腾 | 每队列 10 至 30 条 | 人工介入成本 -40%,首次解决率 +12%,用户满意度提升 |
语义路由的三个工程大坑(别踩)
坑 1:不要只靠「Top-1 相似度最大就是它」——必须同时有「相似度硬阈值」和「Top-1 vs Top-2 差距阈值」两道门。只看 Top-1 的后果:新来的查询是「我想问一下你们公司的股票代码」,Top-1 是 HR 政策库(相似度 0.31)、Top-2 是财务 FAQ 库(相似度 0.30),路由错到 HR 库了啥也搜不到。正确做法:(a) 硬阈值 = 0.5,任何路由类别相似度最高都不到 0.5 → 判定为「未知类别」走通用库;(b) Top-1 减 Top-2 的差值 ≥0.1 才确定选 Top-1,否则判定为「类别歧义」→ 两个库都搜一下取并集。加完两道门,路由错误率直接砍 80%。
坑 2:种子示例一定要用「真实用户历史数据」写,别让产品经理脑补。90% 的团队第一次做语义路由时种子示例写得非常教科书式(「我要退款」「请问年假多少天」),但真实用户的提问千奇百怪(「我上次买的东西你们发错色了我心里不爽想退啊」「年假天数咋算啊问下」)。脑补的种子示例 + 真实口语化查询,相似度根本上不去,路由大量落进「未知类别」。正确做法:拉过去 30 天真实用户查询日志,人工按类别各挑 10 条,越口语、越脏、越有真实错别字越好;每个类别再做 5 条回译增强(中文 → 英文 → 中文),成本几块钱,路由命中率暴涨。
坑 3:路由分类器和 embedding 模型要一起换,别光换 embedding。Semantic Router 本质不是「最近邻搜索」那么简单——生产系统推荐用「embedding + 轻量级分类头」的两阶段架构,而不是纯向量最近邻。举个反例:A 路由和 B 路由语义很像(比如「退款流程」和「换货流程」),纯最近邻经常混淆;而如果你在 embedding 之上再训练一个极小的逻辑回归分类头(输入=embedding 向量 1536 维,输出=路由类别概率),准确率能再涨 8 至 10 个百分点。分类头每个季度用新的标注样本重新训一次,保持准确率不衰减。