我在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值的值无是因为参数名称必须与意图期望的实体类型匹配。
参数用于接收意图的解析实体,而不是完整的用户查询。