在烧瓶辅助方面获取用户消息



我在python 3上使用烧瓶辅助剂将dilaogflow用作网络钩。我查看了官方文档,但找不到如何获取用户消息(对话流JSON请求的"queryText")。我尝试了这一点,没有成功:

# -*- 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的打印始终不返回,但是当我在Ngrok Web界面上进行检查(http://127.0.0.1:4040)时,我可以看到请求。

我想知道cani如何从烧瓶辅助方获取用户消息?

我还询问了github上的这个问题并得到答案,所以我将为其他人分享:

您可以从烧瓶辅助的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值的值无是因为参数名称必须与意图期望的实体类型匹配。

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

最新更新