我已经使用以下命令创建了多个按钮响应,现在如何通过单击此按钮单击来获取操作
class ActionSearchCat(Action):
def name(self):
return "action_search_cat"
def run(self, dispatcher, tracker, domain):
buttons = []
resp = requests.get('http://localhost:3001/api/categoryList/0')
if resp.status_code != 200:
# This means something went wrong.
raise ApiError('GET /tasks/ {}'.format(resp.status_code))
msg = resp.json().get('category_list').get('text')
for list in resp.json().get('category_list').get('choices').items():
for title, value in list.items():
buttons.append({"title": title, "payload": "/"+value})
dispatcher.utter_button_template(msg,buttons)
return []
答案 0 :(得分:0)
因此,首先使用dispatcher.utter_button_message(msg, buttons)
而不是utter_button_template
。
现在,按钮将显示在最终用户的频道上。单击它们之后,您的AI助手收到的下一条消息将具有意图value
(来自所选按钮的有效载荷)。
您必须编写一个故事来处理此意图。如果此按钮是唯一的意图(即您未在按钮上使用Yes
或No
之类的通用名称),则最好的方法是使用MappingPolicy
。无论哪种方式,您还必须在数据中添加以下内容:
## button_specific_action
* value
- corresponding_action_for_value