基于嵌入的路由 (Embedding Based Routing)
本指南向您展示如何使用嵌入模型的语义相似度来路由请求。基于嵌入的路由根据含义而非精确的关键词将用户查询匹配到预定义类别,使其成为处理多样化措辞和快速演变类别的理想选择。
关键优势
- 可扩展性:无需重新训练模型即可处理无限数量的类别
- 快速:使用高效的嵌入模型(Qwen3, Gemma)实现 10-50ms 的推理
- 灵活:通过更新关键词列表来添加/删除类别,无需重新训练模型
- 语义化:捕捉超出精确关键词匹配的含义
它解决了什么问题?
当用户以不同的方式表达问题时,关键词匹配会失败。基于嵌入的路由解决了:
- 释义处理:"如何安装?" 即使没有完全相同的单词也能匹配 "安装指南"
- 意图检测:根据语义而非表面模式进行路由
- 模糊匹配:处理拼写错误、缩写和非正式语言
- 动态类别:无需重新训练分类模型即可添加新类别
- 多语言支持:嵌入可以捕捉跨语言的语义
何时使用
- 具有多样化查询措辞的客户支持
- 用户以多种不同方式询问同一事物的产品咨询
- 需要对错误描述进行语义理解的技术支持
- 需要频繁添加/更新类别的快速演变类别
- 适度的延迟容忍度(为了更好的语义准确性,10-50ms 是可以接受的)
配置
在您的 config.yaml 中添加嵌入规则:
# 定义嵌入信号
signals:
embeddings:
- name: "technical_support"
threshold: 0.75
candidates:
- "如何配置系统"
- "安装指南"
- "故障排除步骤"
- "错误信息解释"
aggregation_method: "max"
- name: "product_inquiry"
threshold: 0.70
candidates:
- "产品特性和规格"
- "定价信息"
- "库存和供货情况"
aggregation_method: "avg"
- name: "account_management"
threshold: 0.72
candidates:
- "重置密码"
- "账号设置"
- "订阅管理"
aggregation_method: "max"
# 使用嵌入信号定义决策
decisions:
- name: technical_support
description: "路由技术支持查询"
priority: 100
rules:
operator: "OR"
conditions:
- type: "embedding"
name: "technical_support"
modelRefs:
- model: "openai/gpt-oss-120b"
use_reasoning: true
plugins:
- type: "system_prompt"
configuration:
system_prompt: "你是一位技术支持专家,在系统配置和故障排除方面拥有深厚的知识。"
- name: product_inquiry
description: "路由产品咨询查询"
priority: 100
rules:
operator: "OR"
conditions:
- type: "embedding"
name: "product_inquiry"
modelRefs:
- model: "openai/gpt-oss-120b"
use_reasoning: false
plugins:
- type: "system_prompt"
configuration:
system_prompt: "你是一位产品专家,对产品特性、定价和供货情况有全面的了解。"
- type: "semantic-cache"
configuration:
enabled: true
similarity_threshold: 0.85
- name: account_management
description: "路由账号管理查询"
priority: 100
rules:
operator: "OR"
conditions:
- type: "embedding"
name: "account_management"
modelRefs:
- model: "openai/gpt-oss-120b"
use_reasoning: false
plugins:
- type: "system_prompt"
configuration:
system_prompt: "你是一位账号管理专家。请谨慎且安全地处理用户账号查询。"