未在自定义操作中设置广告位值

时间:2020-07-30 07:46:45

标签: rasa

在我的自定义操作中,我创建了一个按钮列表,其值来自数据库。用户单击其中任何一个按钮后,将使用用户单击的按钮中的值设置插槽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'))

Log file

Log

1 个答案:

答案 0 :(得分:0)

看起来您正在通过显示按钮的操作来打印结果。在用户实际单击按钮之前,不会设置该插槽。