问题
I have made a Chat-Bot using Amazon's LEX.
Is there any way I can use that application using Google's Voice Assistant in my phone?
If not why?
回答1:
Yes it is possible to use Google's voice assistant application with Amazon Lex as NLP engine.
- Go to https://developers.google.com/actions/ and log in
- Go to Actions Console using button on top left corner
- Create an Amaaon Lex agent
- In your actions's SDK use Lex's runtime library to
postContent
orpostText
function to call Lex and get intent name - Make your functions in Actions SDK to return fulfillment text
Pseudo Code in 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)
Please note that you will need to have understanding of action's sdk and lex runtime library to extend above code according to your need.
This is high level approach to achieve your goal.
Hope it helps.
来源:https://stackoverflow.com/questions/53556376/can-i-use-amazon-lex-with-google-assistant