智能路由
Smart Router 组件可以看作是由 LLM 驱动的 If-Else 组件 变体。 它不再依赖字符串匹配,而是通过连接的Language Model 组件来对输入消息进行分类并路由。
凡是你原本会使用 If-Else 组件的地方,都可以考虑改用 Smart Router。 例如,你可以先创建 If-Else 组件示例流程,然后把其中的 If-Else 替换为 Smart Router。 不同的是,这里不再写正则,而是通过 Routes 表格定义不同输出类别。
Routes 表用于定义路由类别。 例如,做情感分析时可以使用如下配置:
| Route Name | Route Description | Route Message |
|---|---|---|
| Positive | Positive feedback, satisfaction, or compliments | |
| Negative | Complaints, issues, or dissatisfaction | |
| Neutral | Questions, requests for information, or neutral statements | Thank you for your inquiry! |
组件会自动为 Positive、Negative 和 Neutral 创建对应输出端口。
当 LLM 对输入文本完成分类后,消息会根据路由名从对应端口输出。
对于 Positive 和 Negative,默认会直接透传原始输入文本;对于 Neutral,则会输出路由中设置的 "Thank you for your inquiry!",而不是原始文本。
Override Output 参数可用于强制所有路由输出同一条消息。
一旦提供了 override 消息,它会优先于所有其他输出逻辑,完全替代原始输入文本以及各路由自定义消息。
例如在上面的情感分析 例子里,如果你把 Override Output 设置为 "Message received",那么所有路由都会输出同样的内容。
Additional Instructions 参数则用于给 LLM 提供额外分类提示。
其中 {input_text} 可引用当前待分类的输入文本,{routes} 可引用由路由名组成的逗号分隔列表。
例如,如果你希望 LLM 在客服场景下进行更准确分类,可以加入如下提示:
_10The text "{input_text}" is from a customer support context._10Consider the urgency and emotional tone when choosing from {routes}.
Smart Router 参数
有些参数在可视化编辑器中默认处于隐藏状态。 你可以通过组件标题栏菜单中的 控件 来修改全部参数。
| Name | Type | Description |
|---|---|---|
| Language Model | LanguageModel | 输入参数。用于分类的语言模型。LLM 会接收输入文本和可用类别,并返回完全匹配的类别名。必填。 |
| Input | String | 输入参数。待分类的主文本。必填。 |
| Routes | Table | 输入参数。定义路由类别的表。每一行包含路由名称(必填)、帮助 LLM 理解分类含义的可选描述,以及可选的自定义输出消息。组件会为每个路由类别创建一个输出端口。必填。 |
| Override Output | Message | 输入参数。可选的统一覆盖消息。若提供,则它会覆盖所有路由的原始输入文本和自定义路由消息。高级参数。 |
| Additional Instructions | String | 输入参数。提供给 LLM 的额外分类说明。这些说明会追加到基础分类 Prompt 中;基础 Prompt 已包含完整的 Routes 表(名称与描述)。可使用 {input_text} 表示输入文本,使用 {routes} 表示仅由路由名组成的逗号分隔列表。 |
| Include Else Output | Boolean | 输入参数。是否在未命中任何路由时提供 Else 输出。关闭时,若未匹配成功则不产生输出。默认:false。 |
| Else | Message | 输出参数。Else 输出。仅当 Include Else Output 为 true 时可用;当没有路由命中时,会输出 override 消息(如果有),否则输出原始输入文本。 |