如何在 Botfront/Rasa 中传递和提取由 POST 请求发送的元数据?

问题描述

我正在尝试使用 Rasa 自定义操作获取元数据。 POST 请求正文如下所示:

{
"sender": "Me","message":"Check channel","Metadata": {"channel": "chat"}
}

我将 get_Metadata 文件的 InputChannel 类中的方法 rasa\Lib\site-packages\rasa\core\channels\channel.py 更改为:

def get_Metadata(self,request: Request) -> Optional[Dict[Text,Any]]:
    Metadata = request.json
    return Metadata

而且,我也在 Rasa 自定义操作中编写了下一个代码提取它:

@staticmethod
def extract_Metadata_from_tracker(tracker: Tracker):
    events = tracker.current_state()['events']
    user_events = []
    for e in events:
        if e['event'] == 'user':
            user_events.append(e)
    return user_events[-1]['Metadata']

作为回应,我只得到空的元数据:

    "recipient_id": "Me","text": "Check channel","Metadata": {}
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...