【发布时间】:2020-11-22 22:27:24
【问题描述】:
我正在尝试使用 rasa 构建一个机器人。在对话的最开始,它应该用数据库中的数据填充一些槽。
我有一个自定义操作:
class ActionFillSlots(Action):
def name(self) -> Text:
return "action_fill_slots"
def run(self, dispatcher: CollectingDispatcher,
tracker: Tracker,
domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
example = "example"
return [SlotSet("example", example)]
在我的 domain.yml 文件中,我设置了这样的插槽:
slots:
example:
type: text
还有这样的回应:
utter_greet:
- text: "Show { example }"
在我的 stories.yml 文件中,我有这样的故事:
- story: greet happy path
steps:
- intent: greet
- action: action_fill_slots
- action: utter_greet
如果我使用rasa shell --debug 运行机器人
然后输入与问候意图相匹配的内容,我收到以下错误:
未能填充话语模板“显示 { 示例 }”尝试替换“示例”但找不到值 e 为它。调用模板时没有使用此名称的插槽,也没有显式传递值。返回模板而不填写模板。
在我的调试窗口中,我可以看到,该插槽已由操作设置:
当前槽值: 示例:示例
我使用的是 rasa 2.1.0
【问题讨论】: