您需要了解的:
译者英语水平和敲代码水平是难分伯仲的稀烂,这是非常粗糙的意译,删减了很多译者觉得不太重要的内容,是自己留档备用的,不要看了我自己都嫌丢人。译者翻译自家冷CP在ao3上的同人文时都比这个官方文档的翻译过程严谨一万倍。
原文请戳:response
Responses是指您的聊天助手发送给用户的消息。一条response通常是文本类型,但也可以包含图片、按钮等内容。
一、Defining Responses(定义response)
需要注意:response必须以utter_开头
1、Using Variables in Responses(在response中使用变量)
(1)response定义中表示变量
如果您想要使用name变量,在response定义中用“{}”把它括起来即可
当utter_greet被调用时,rasa将会在名为name的slot中寻找相应的值,并自动填充到文本中。如果名为name的slot不存在或为空,文本中变量将用None进行填充。
(2)在custom action调用utter_greet时传递变量
在custom action的代码部分,您可以为某个response中的特定变量提供相应的值。如果action服务器中使用了Rasa SDK,您可以通过在dispatcher.utter_message中将变量作为关键词达到传值的效果。
(3)如果您使用的是其他custom action服务器,请通过在服务器响应中添加参数来提供变量值。
2、Response Variations(response变体)
当utter_greet被预测为下一个action时,rasa将随机从以上多条response变体中选择一条使用
3、Channel-Specific Response Variations(特定通道response变体)
需要根据用户连接的不同通道区分返回不同的response变体时,请使用Channel-Specific Response Variations
在下例中,通过channel关键词声明第一个response变体仅只针对slack通道生效。而第二个response变体则没有指定特定通道。
当聊天助手在指定response中寻找合适的response变体时,将优先选择指定当前通道的response变体。如果当前通道没有专门指定的变体,聊天助手会从所有未指定特定通道的response变体中挑选一个。
注意:对于每个response,请至少留有一条不指定特定通道的response变体。
二、Rich Responses(丰富您的response)
通过添加可视化或可交互的元素,可以生成更加丰富多彩的responses。以下是许多通道都支持的几类元素
1、Buttons(按钮)
两个关键词说明:
title:用户见到的按钮上显示出的文本
payload:当用户按下按钮时,回传给聊天助手的用户消息。
2、Images(图片)
3、Custom Output Payloads(自定义输出)
使用custom关键词声明后,其他部分参照不同通道各自规范编写。
三、Using Responses in Conversations(在对话中使用responses)
1、Calling Responses as Actions(将response作为actions调用)
以utter_开头的response可以直接作为action被调用,不需要在actions中再次声明
(1)在domain文件中添加response
(2)在stories中使用同名response作为action
当action utter-greet启动后,聊天助手会将与之同名的response回传给用户
注意:一旦更改某response中配置的内容,就需要重新训练。否则更改将不会生效。
2、Calling Responses from Custom Actions(在custom action中调用response)
译者按:rasa 3.0后的版本移除了template用法,请参考官方最新说明进行操作
补充声明:response variation中的variation译者没有文化实在不知如何准确用中文表达,只好生硬译为“变体”,如果这个variation在CS领域内有专有解释,那只能证明我实在是学业不精
又开始为自己大学生涯的颓废而悔恨了