在我的自定义操作中,我创建了一个按钮列表,其值来自数据库。用户单击其中任何一个按钮后,将使用用户单击的按钮中的值设置插槽ma_truong_hop。运行动作服务器后,我检查了日志文件,并且清楚地看到已设置插槽ma_truong_hop。但是,当我使用tracker.get_slot('ma_truong_hop')获取插槽ma_truong_hop的值时,它的值仍然没有。任何帮助将不胜感激。
我的自定义操作:
statement = 'SELECT MA_CHI_TIET_TRUONG_HOP, TEN_CHI_TIET_TRUONG_HOP FROM CHATBOT_CHI_TIET_THU_TUC WHERE MA_CHI_TIET_THU_TUC = :ma_thu_tuc'
ma_thu_tuc = tracker.get_slot('ma_thu_tuc')
cur = con.cursor()
cur.execute(statement, ma_thu_tuc = ma_thu_tuc)
res = cur.fetchall()
button_list = []
for ma_truong_hop, ten_truong_hop in res:
title = ten_truong_hop
payload = "/truong_hop{\"ma_truong_hop\": \"" + str(ma_truong_hop) + "\"} "
button_list.append({ "title": title, "payload": payload })
dispatcher.utter_message(text = "Thủ tục bạn tìm kiếm có các trường hợp sau: ", buttons = button_list)
print(tracker.get_slot('ma_truong_hop'))
答案 0 :(得分:0)
看起来您正在通过显示按钮的操作来打印结果。在用户实际单击按钮之前,不会设置该插槽。