如何用Dialogflow CX意图实现产品/通用搜索的用户输入识别与参数传递?
基于Dialogflow意图实现带前缀的搜索路由配置
实现思路
通过创建两个优先级不同的意图,分别处理带指定前缀的搜索请求和通用请求,利用Dialogflow的参数提取能力自动完成内容截取与参数传递,无需在webhook中额外做字符串解析。
具体配置步骤
1. 配置 PRODUCT_SEARCH 意图
- 训练短语设置:添加模板化训练短语
Search product: @sys.any:search_query,其中@sys.any用于捕捉前缀后的任意内容,参数名设为search_query。 - 参数映射:在意图的「参数」面板中,将
search_query参数的「会话参数」设置为prompt,确保该参数值会存入$session.parameter.prompt。 - Webhook配置:开启「启用webhook调用」,并关联你的
PRODUCT_SEARCHwebhook服务。 - 意图优先级:将优先级设为最高,确保系统优先匹配带前缀的输入。
2. 配置 GENERAL_SEARCH 意图
- 训练短语设置:添加训练短语
@sys.any:full_query,用@sys.any捕捉所有未匹配到高优先级意图的输入,参数名设为full_query。 - 参数映射:将
full_query参数的「会话参数」设置为prompt,把完整用户输入存入$session.parameter.prompt。 - Webhook配置:开启「启用webhook调用」,关联你的
GENERAL_SEARCHwebhook服务。 - 意图优先级:将优先级设为低于PRODUCT_SEARCH意图,确保只有当输入不匹配前缀时才触发该意图。
关键优化点
- 无需创建大量实体或训练数据:依赖
@sys.any的泛匹配能力,只要前缀"Search product:"准确,后续任意内容都能被正确捕捉。 - 逻辑清晰分离:通过意图路由明确区分两种搜索场景,避免在webhook中做字符串判断,降低维护成本。
- 参数传递自动化:直接通过Dialogflow的参数映射完成
prompt参数的赋值,无需额外代码处理。
内容的提问来源于stack exchange,提问作者da-veed
相关产品推荐
相关产品推荐

