私はGoogleのホームアシスタントを作ろうとしています。基本的に私は、ユーザーが何を言っているのかを把握し、それを応答に戻す必要があります。JSONにアクセスしてユーザーの応答を返す方法は?
私はいくつかのパズルピースを考え出しました。
一つは、クエリを実行するAPIを初期化されます。
api = ApiAi(os.environ['DEV_ACCESS_TOKEN'], os.environ['CLIENT_ACCESS_TOKEN'])
は、他ではちょうど、ユーザーが言う何でもキャプチャし、それをバック繰り返すように意図されたフォールバックの意図である:
@assist.action('fallback', is_fallback=True)
def say_response():
""" Setting the fallback to act as a looper """
speech = "test this" # <-- this should be whatever the user just said
return ask(speech)
もう一つは、 API.AIサイトのJSONレスポンスは次のようになります。
{
"id": "XXXX",
"timestamp": "2017-07-20T14:10:06.149Z",
"lang": "en",
"result": {
"source": "agent",
"resolvedQuery": "ok then",
"action": "say_response",
"actionIncomplete": false,
"parameters": {},
"contexts": [],
"metadata": {
"intentId": "a452b371-f583-46c6-8efd-16ad9cde24e4",
"webhookUsed": "true",
"webhookForSlotFillingUsed": "true",
"webhookResponseTime": 112,
"intentName": "fallback"
},
"fulfillment": {
"speech": "test this",
"source": "webhook",
"messages": [
{
"speech": "test this",
"type": 0
}
],
"data": {
"google": {
"expect_user_response": true,
"is_ssml": true
}
}
},
"score": 1
},
"status": {
"code": 200,
"errorType": "success"
},
"sessionId": "XXXX"
}
m私はこのようなルックスからintializingよodule:https://github.com/treethought/flask-assistant/blob/master/api_ai/api.py
完全なプログラムは次のようになります。
import os
from flask import Flask, current_app, jsonify
from flask_assistant import Assistant, ask, tell, event, context_manager, request
from flask_assistant import ApiAi
app = Flask(__name__)
assist = Assistant(app, '/')
api = ApiAi(os.environ['DEV_ACCESS_TOKEN'], os.environ['CLIENT_ACCESS_TOKEN'])
# api.post_query(query, None)
@assist.action('fallback', is_fallback=True)
def say_response():
""" Setting the fallback to act as a looper """
speech = "test this" # <-- this should be whatever the user just said
return ask(speech)
@assist.action('help')
def help():
speech = "I just parrot things back!"
## a timeout and event trigger would be nice here?
return ask(speech)
@assist.action('quit')
def quit():
speech = "Leaving program"
return tell(speech)
if __name__ == '__main__':
app.run(debug=False, use_reloader=False)
は、どのように私はJSONのうち「resolvedQueryは」の「スピーチ」としてフィードバックされるために得ることについて行きますレスポンスは?
ありがとうございました。
これは私が必要なものである。このような
何かがあなたが最初のJSONデータを取得する方法です。本当にありがとう。 –