Dialogflow CX:如何将Fulfillment消息存入会话参数适配多语言重复意图?
解决方案:通过存储多语言消息键实现重复响应需求
直接把Fulfillment消息文本存参数确实行不通,因为参数没有语言特异性,但可以换个思路——存消息对应的多语言键名,后续repeat意图触发时再根据当前会话语言拉取对应文本。具体操作分两步:
第一步:发送Fulfillment消息时,同步存消息的多语言键到会话参数
假设你在Dialogflow CX的多语言配置里,给各语言的同一条响应设置了统一的键(比如order_confirm_msg),在发送这条消息的Fulfillment中,把这个键值存入一个会话参数(比如last_response_key)。不用存具体文本,只存键就行。第二步:repeat意图触发时,根据键和当前语言拉取对应消息
当用户触发repeat意图后,在对应的Fulfillment里做以下操作:- 拿到会话参数
last_response_key的值,以及当前会话的语言代码(比如zh-CN、en-US) - 通过Webhook调用你的多语言资源(或者直接读取Dialogflow CX内置的消息库),根据键和语言取出对应的响应文本
- 将取出的文本组装成响应返回给用户
- 拿到会话参数
如果不想用Webhook,也可以用Dialogflow CX的条件Fulfillment:针对每个支持的语言,判断会话语言后,根据last_response_key匹配对应的预定义消息组。但这种方式只适合消息数量少、固定的场景,扩展性不如Webhook方案。
内容的提问来源于stack exchange,提问作者Al A
相关产品推荐
相关产品推荐

