如何在 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 的创始人之一。很高兴回答任何进一步的问题。