跳到主要内容

智能路由

Smart Router 组件可以看作是由 LLM 驱动的 If-Else 组件 变体。 它不再依赖字符串匹配,而是通过连接的Language Model 组件来对输入消息进行分类并路由。

凡是你原本会使用 If-Else 组件的地方,都可以考虑改用 Smart Router。 例如,你可以先创建 If-Else 组件示例流程,然后把其中的 If-Else 替换为 Smart Router。 不同的是,这里不再写正则,而是通过 Routes 表格定义不同输出类别。

Routes 表用于定义路由类别。 例如,做情感分析时可以使用如下配置:

Route NameRoute DescriptionRoute Message
PositivePositive feedback, satisfaction, or compliments
NegativeComplaints, issues, or dissatisfaction
NeutralQuestions, requests for information, or neutral statementsThank you for your inquiry!

组件会自动为 PositiveNegativeNeutral 创建对应输出端口。 当 LLM 对输入文本完成分类后,消息会根据路由名从对应端口输出。 对于 Positive 和 Negative,默认会直接透传原始输入文本;对于 Neutral,则会输出路由中设置的 "Thank you for your inquiry!",而不是原始文本。

Override Output 参数可用于强制所有路由输出同一条消息。 一旦提供了 override 消息,它会优先于所有其他输出逻辑,完全替代原始输入文本以及各路由自定义消息。 例如在上面的情感分析例子里,如果你把 Override Output 设置为 "Message received",那么所有路由都会输出同样的内容。

Additional Instructions 参数则用于给 LLM 提供额外分类提示。 其中 {input_text} 可引用当前待分类的输入文本,{routes} 可引用由路由名组成的逗号分隔列表。

例如,如果你希望 LLM 在客服场景下进行更准确分类,可以加入如下提示:


_10
The text "{input_text}" is from a customer support context.
_10
Consider the urgency and emotional tone when choosing from {routes}.

Smart Router 参数

有些参数在可视化编辑器中默认处于隐藏状态。 你可以通过组件标题栏菜单中的 控件 来修改全部参数。

NameTypeDescription
Language ModelLanguageModel输入参数。用于分类的语言模型。LLM 会接收输入文本和可用类别,并返回完全匹配的类别名。必填。
InputString输入参数。待分类的主文本。必填。
RoutesTable输入参数。定义路由类别的表。每一行包含路由名称(必填)、帮助 LLM 理解分类含义的可选描述,以及可选的自定义输出消息。组件会为每个路由类别创建一个输出端口。必填。
Override OutputMessage输入参数。可选的统一覆盖消息。若提供,则它会覆盖所有路由的原始输入文本和自定义路由消息。高级参数。
Additional InstructionsString输入参数。提供给 LLM 的额外分类说明。这些说明会追加到基础分类 Prompt 中;基础 Prompt 已包含完整的 Routes 表(名称与描述)。可使用 {input_text} 表示输入文本,使用 {routes} 表示仅由路由名组成的逗号分隔列表。
Include Else OutputBoolean输入参数。是否在未命中任何路由时提供 Else 输出。关闭时,若未匹配成功则不产生输出。默认:false
ElseMessage输出参数。Else 输出。仅当 Include Else Outputtrue 时可用;当没有路由命中时,会输出 override 消息(如果有),否则输出原始输入文本。