我在带dilaogflow的webhook上的python 3上使用了flask-assistant。我查看了官方文档,但找不到如何获取用户消息(在dialogflow 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的打印始终返回None,但是当我在ngrok Web界面(http://127.0.0.1:4040)上进行检查时,可以看到请求。
我想知道如何从flask-assistant获取用户消息?
答案 0 :(得分:0)
我也在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值为None的原因是,参数名称必须与意图期望的实体类型匹配。
参数用于接收意图的已解析实体,而不是完整的用户查询。