1

我使用亚马逊的LEX制作了一个聊天机器人。

有什么方法可以在我的手机中 使用 Google 的语音助手来使用该应用程序?

如果不是为什么?

4

1 回答 1

1

是的,可以将 Google 的语音助手应用程序与 Amazon Lex 一起用作 NLP 引擎。

  • 转到https://developers.google.com/actions/并登录
  • 使用左上角的按钮转到操作控制台
  • 创建一个 Amaaon Lex 代理
  • 在您的操作的 SDK 中使用Lex 的运行时库postContent或函数来postText调用 Lex 并获取意图名称
  • 在 Actions SDK 中创建函数以返回履行文本

Nodejs 中的伪代码:

const {actionssdk} = require('actions-on-google');
const express = require('express');
const bodyParser = require('body-parser');
const rp = require('request-promise');


const app = actionssdk({debug: true});

app.intent('actions.intent.MAIN', (conv) => {
  conv.ask('Hi!');
});

app.intent('actions.intent.TEXT', (conv, input) => {
  // here you will write code to call amazon lex and pass input text
  intent_name = lex_library(input) 

  return rp({
    intent_name
  })
  .then((res) => {
    // create an intent-action mapper
    const actionMap = {
      name: nameIntent,
      help: helpIntent,
    };
    // check the intent name from Lex
    if (res.intent_name && res.intent_name !== 'None') {

      // Map intents to functions for different responses
      actionMap[res['intent_name']](conv);

    } else {      
      conv.ask('Sorry, I don\'t understand what you mean.');
    }
  })
  .catch((e) => {
    console.log('Error =>', e);
  });
});

function nameIntent(conv) {
  conv.ask('My name is noobie. Hope you are fine!');
} 

function helpIntent(conv) {
  conv.ask('Help response');
}

express().use(bodyParser.json(), app).listen(8888)

请注意,您需要了解 action 的 sdk 和 lex 运行时库,才能根据需要扩展上述代码。
这是实现目标的高级方法。

希望能帮助到你。

于 2018-12-10T13:23:35.110 回答