【问题标题】:Get user message on flask-assistant在烧瓶助手上获取用户消息
【发布时间】:2019-03-06 14:16:57
【问题描述】:

我在 python 3 上使用 flask-assistant 和 dilaogflow 作为 webhook。我查看了官方文档,但没有找到如何获取用户消息("queryText" on dialogflow json request)。 我试过这个没有成功:

# -*- coding: utf-8 -*-
from flask import Flask
from flask_assistant import Assistant, ask, tell, context_manager, event

project_id='myproject_id'
app = Flask(__name__)
assist = Assistant(app, route='/', project_id = project_id)

@assist.action('Default Fallback Intent')
def manage_fallback(queryText):
    print('*'*40,queryText)
    speech='Running'
    return tell(speech)

if __name__ == '__main__':
    app.run(debug=True)

queryText 的打印总是返回 None,但是当我在 ngrok Web 界面 (http://127.0.0.1:4040) 上检查时,我可以看到请求。

我想知道如何从flask-assistant获取用户消息?

【问题讨论】:

    标签: python flask dialogflow-es-fulfillment


    【解决方案1】:

    我也在github上问过这个问题,得到了答案,分享给大家:

    您可以从flask-assistant request 对象中获取查询文本。

    from flask_assistant import request
    ...
    ...
    @assist.action('Default Fallback Intent')
    def manage_fallback():
        user_query = request['queryResult']['queryText']
        speech = "You said " + user_query
        return tell(speech)
    

    manage_fallback 函数预期的 queryText 值为 None 的原因是参数名称必须与意图预期的实体类型匹配。

    参数用于接收意图的解析实体,而不是完整的用户查询。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-24
      • 1970-01-01
      • 2017-04-16
      • 1970-01-01
      相关资源
      最近更新 更多