如何在 aws lambda 中使用 'actions-on-google' 库
how to use 'actions-on-google' libray in aws lambda
在 actions-on-google 中,请求和响应对象都需要作为输入提供给这个库。但是在lambda函数中,只有request对象存在。
那么我该如何覆盖它呢?
在 aws lambda 中,格式为
exports.handler = function (event, context, callback) { // event is the request object , the response is provided using the callback() functon
}
google 对象创建为:
const DialogflowApp = require('actions-on-google').DialogflowApp;
const app = new DialogflowApp({ request: request, response: response });
这只是回答的一半:
好的,所以我想我无法告诉您如何使 google sdk 上的操作在 AWS Lambda 上正确运行。
也许很简单,我只是不知道,需要阅读所有内容才能知道。
我的,"easy to go",但最后你可能会有更多的工作解决方案,只是自己解释请求 jsons 并用如下所示的消息进行响应
这将是一个极端琐碎的 javascript 函数,用于创建一个极端琐碎的 JSON 响应。
参数:
Message 是您要添加为答案的字符串。
Slots应该是一个数组,可以用来偏置语音识别。
(如果你不想让演讲有偏见,你可以只给这个函数一个空数组)。
而State是任何一种可序列化的javascript对象,这是为了你自己维护状态或其他东西它将在所有意图之间转移。
这是对语音请求的标准响应。
您可以为此添加语音以外的其他平台,通过添加不同的初始提示,请参阅文档中的 JSON 选项卡:
https://developers.google.com/actions/assistant/responses#json
function answerWithMessage(message,slots,state){
let newmessage = message.toLowerCase();
let jsonResponse = {
conversationToken: JSON.stringify(state),
expectUserResponse: true,
expectedInputs: [
{
inputPrompt: {
initialPrompts: [
{
textToSpeech: newmessage
}
],
noInputPrompts: []
},
possibleIntents: [
{
intent: "actions.intent.TEXT"
}
],
speechBiasingHints: slots
}
]
};
return JSON.stringify(jsonResponse,null, 4);
}
要使 Google 操作在 AWS Lambda 上运行,您需要做两件事:
- 以可在 Lambda 上执行的方式对您的应用程序进行编码
- 创建一个 API 网关到您的 Lambda 函数,然后您可以将其用于 Dialogflow Fulfillment
我相信第一个 setp 无法使用 Actions SDK 现成完成。如果您使用 Jovo 这样的框架,您可以创建适用于 Amazon Alexa 和 Google Assistant 的代码,并将其托管在 AWS Lambda 上。
您可以找到有关设置 "Hello World" Google 操作的分步教程,将其托管在 Lambda 上,并在此处创建 API 网关:https://www.jovo.tech/blog/google-action-tutorial-nodejs/
免责声明:我是 Jovo 的创始人之一。很高兴回答任何进一步的问题。
在 actions-on-google 中,请求和响应对象都需要作为输入提供给这个库。但是在lambda函数中,只有request对象存在。
那么我该如何覆盖它呢?
在 aws lambda 中,格式为
exports.handler = function (event, context, callback) { // event is the request object , the response is provided using the callback() functon
}
google 对象创建为:
const DialogflowApp = require('actions-on-google').DialogflowApp;
const app = new DialogflowApp({ request: request, response: response });
这只是回答的一半: 好的,所以我想我无法告诉您如何使 google sdk 上的操作在 AWS Lambda 上正确运行。 也许很简单,我只是不知道,需要阅读所有内容才能知道。
我的,"easy to go",但最后你可能会有更多的工作解决方案,只是自己解释请求 jsons 并用如下所示的消息进行响应
这将是一个极端琐碎的 javascript 函数,用于创建一个极端琐碎的 JSON 响应。
参数: Message 是您要添加为答案的字符串。 Slots应该是一个数组,可以用来偏置语音识别。 (如果你不想让演讲有偏见,你可以只给这个函数一个空数组)。
而State是任何一种可序列化的javascript对象,这是为了你自己维护状态或其他东西它将在所有意图之间转移。
这是对语音请求的标准响应。 您可以为此添加语音以外的其他平台,通过添加不同的初始提示,请参阅文档中的 JSON 选项卡: https://developers.google.com/actions/assistant/responses#json
function answerWithMessage(message,slots,state){
let newmessage = message.toLowerCase();
let jsonResponse = {
conversationToken: JSON.stringify(state),
expectUserResponse: true,
expectedInputs: [
{
inputPrompt: {
initialPrompts: [
{
textToSpeech: newmessage
}
],
noInputPrompts: []
},
possibleIntents: [
{
intent: "actions.intent.TEXT"
}
],
speechBiasingHints: slots
}
]
};
return JSON.stringify(jsonResponse,null, 4);
}
要使 Google 操作在 AWS Lambda 上运行,您需要做两件事:
- 以可在 Lambda 上执行的方式对您的应用程序进行编码
- 创建一个 API 网关到您的 Lambda 函数,然后您可以将其用于 Dialogflow Fulfillment
我相信第一个 setp 无法使用 Actions SDK 现成完成。如果您使用 Jovo 这样的框架,您可以创建适用于 Amazon Alexa 和 Google Assistant 的代码,并将其托管在 AWS Lambda 上。
您可以找到有关设置 "Hello World" Google 操作的分步教程,将其托管在 Lambda 上,并在此处创建 API 网关:https://www.jovo.tech/blog/google-action-tutorial-nodejs/
免责声明:我是 Jovo 的创始人之一。很高兴回答任何进一步的问题。