python - 无法让用户 facebook messager 进入 rasa 核心服务器
问题描述
我用 rasa core 和 nlu 构建了一个 slack 机器人,它工作正常。我可以轻松处理用户输入。但是,当我用 facebook 频道尝试相同的过程时,如果某些用户在 page messenger 中说任何话,我的 rasa facebook 应用程序没有响应。
我的 webhook 工作正常。
se 'load(stream, Loader=ruamel.yaml.Loader)' explicitly if that is OK.
或者在您的代码中包含以下内容:
导入警告 warnings.simplefilter('ignore', ruamel.yaml.error.UnsafeLoaderWarning)
在大多数其他情况下,您应该考虑使用 'safe_load(stream)' data = yaml.load(stream) 127.0.0.1 - - [2018-11-16 10:52:50] "GET /webhooks/slack/webhook?hub.模式=订阅& hub.challenge=343235800&hub.verify_token=rasa-bot HTTP/1.1" 404 342 0.005916 127.0.0.1 - - [2018-11-16 10:53:51] "GET /webhooks/facebook/webhook?hub.mode =subscribe&hub.challenge=923059630&hub.verify_token=rasa-bot HTTP/1.1" 200 124 0.001723
这是我的服务器脚本。
nlu_interpreter = RasaNLUInterpreter('./models/default/model_20181116-102101')
action_endpoint = EndpointConfig(url="http://localhost:5055/webhook")
agent = Agent.load('./models/dialogue', interpreter=nlu_interpreter, action_endpoint=action_endpoint)
credentials = yaml.load(open('./credentials.yml'))
fb_access_token = credentials['facebook']['verify']
fb_secret = credentials['facebook']['secret']
fb_verify = credentials['facebook']['verify']
input_channel = FacebookInput(fb_access_token=fb_access_token,fb_secret=fb_secret, fb_verify=fb_verify)
logLevel = "DEBUG"
logfile = "log.txt"
utils.configure_colored_logging(logLevel)
utils.configure_file_logging(logLevel, logfile)
agent.handle_channels([input_channel], 5004, serve_forever=True)
我是否必须扩展导入某些类来处理用户消息。因为在 slack bot 期间,不需要它。我正在使用 rasa core 0.11.12 和最新的 rasa NLU。
我没有在我的 rasa 服务器中收到用户消息。
任何帮助的家伙。
谢谢
解决方案
换行
fb_access_token = credentials['facebook']['verify']
至
fb_access_token = credentials['facebook']['page-access-token']
一般来说,我建议从命令行使用 Rasa Core,而不是编写自定义代码。例如,您可以通过提供类似的凭证文件来指示 Core 将 Facebook 设置为频道
facebook:
verify: "rasa-bot"
secret: "1234"
page-access-token: "3123020"
然后使用以下命令启动 Rasa Core:
python -m rasa_core.run -d models/dialogue \
-u models/nlu/current \
--credentials credentials.yml
这也记录在Rasa Core 文档中。
推荐阅读
- sql - 如何在处理 0 案例时跨一对多关系按列计数和分组?
- c# - 如何在 C# XML 文档注释中为参数指定示例值?
- java - 如何从 Spring Security 身份验证中排除删除 url?
- laravel - Laravel 7 将 React.js 添加到没有 composer 的项目需要 laravel/ui?
- python - Nominatim 在为其分配变量后返回配置错误
- sql - SQL如何通过动态变量名调用用户定义的函数
- csv - 如何使 Kotlin Jackson CSV 阅读器将列名映射到 POJO?
- sql - 查询用于查找 hive 表中时间序列数据的前一个时间点不可用的新值
- java - 双重给予奇怪的数字
- java - 单击后退箭头按钮时,Android 应用程序没有响应