gpt4 book ai didi

node.js - Amazon Lex 机器人 - 回复您好

转载 作者:太空宇宙 更新时间:2023-11-03 21:52:52 25 4
gpt4 key购买 nike

我已经开始学习 Amazon lex,浏览了他们的文档和示例机器人。

我面临的问题是所有机器人都是问答类型,如果我必须让机器人回复“Hello”,正确的方法应该是什么或如何做?

据我了解:

I am thinking of creating an intent for Hello and when it gets fulfilled i can make the bot reply How can i help you? with Lambda Function, this is the way it is supposed to be done?

用户可以提出许多其他直接问题,我是否必须使用 lambda 函数回答所有意图的问题?我正在使用java脚本。

我被困住了,建议什么方法吗?

编辑 1:How to give response based on user response in Amazon Lex?

这就是我一直在寻找的东西,任何建议都会有所帮助。

最佳答案

要在 Lambda 函数中实现从 JavaScript (Node.js) 返回格式化响应:

首先创建一些方便的函数来构建正确的 Lex 响应格式。

function close(sessionAttributes, fulfillmentState, message) {
return {
sessionAttributes,
dialogAction: {
type: 'Close',
fulfillmentState,
message,
},
};
}

您可以在 AWS-Lex-Convo-Bot-Example index.js 中找到更多类似的 Node 响应构建函数。

然后只需调用该函数并传递它所需的内容,如下所示:

var message = {
'contentType': 'PlainText',
'content': 'Hi! How can I help you?'
}

var responseMsg = close( sessionAttributes, 'Fulfilled', message );

(在“内容”中写入您的消息,如果使用 SSML 标记,请将“contentType”更改为“SSML”)

然后将responseMsg传递给exports.handlercallback

<小时/>

把它们放在一起,你会得到:

function close(sessionAttributes, fulfillmentState, message) {
return {
sessionAttributes,
dialogAction: {
type: 'Close',
fulfillmentState,
message,
},
};
}

exports.handler = (event, context, callback) => {
console.log( "EVENT= "+JSON.stringify(event) );

const intentName = event.currentIntent.name;
var sessionAttributes = event.sessionAttributes;

var responseMsg = "";

if (intentName == "HelloIntent") { // change 'HelloIntent' to your intent's name
var message = {
'contentType': 'PlainText',
'content': 'Hi! How can I help you?'
}

responseMsg = close( sessionAttributes, 'Fulfilled', message );
}
// else if (intentName == "Intent2") {
// build another response for this intent
// }
else {
console.log( "ERROR unhandled intent named= "+intentName );
responseMsg = close( sessionAttributes, 'Fulfilled', {"contentType":"PlainText", "content":"Sorry, I can't help with that yet."});
}

console.log( "RESPONSE= "+JSON.stringify(responseMsg) );
callback(null, responseMsg);
}

关于node.js - Amazon Lex 机器人 - 回复您好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48834037/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com