gpt4 book ai didi

aws-lambda - 有没有办法让 lambda 函数为 AWS Lex 机器人执行它的自定义错误提示?

转载 作者:行者123 更新时间:2023-12-04 16:30:29 24 4
gpt4 key购买 nike

我想动态处理错误消息,而不是依赖于我们在 Lex 仪表板中声明的内容。但是,当我尝试输入错误消息时,它会立即触发默认错误消息。当我使用无服务器检查 lambda 日志时,未执行 lambda 函数。

查看日志:

enter image description here

当我输入“can you do this”时没有新条目。我期望 lambda 函数会执行,因为我添加了一些 console.log 来检查事件数据。

有可能吗?

最佳答案

您可以动态处理这些,但为此您需要在聊天客户端和 lex 之间设置 API 网关和 Lambda 函数。

enter image description here

您的聊天客户端会将请求发送到 API Gateway,然后发送到 Lambda 函数,然后再发送到 Lex(Lex 将多一个 lambda 函数)。在从 Lex 返回响应时,您可以检查 Lambda 函数是否是错误消息并触发一些操作。

在 Lambda 函数中我们可以这样使用:

import logging
import boto3

logger = logging.getLogger()
logger.setLevel(logging.DEBUG)

client_run = boto3.client('lex-runtime')
client_model = boto3.client('lex-models')

def lambda_handler(event, context):
response = client_run.post_text(
botName='name_of_your_bot',
botAlias='alias_of_your_bot',
userId='some_id',
sessionAttributes={
'key1': 'value1'
},
inputText=event['user_query']
)
bot_details = client_model.get_bot(
name='name_of_your_bot',
versionOrAlias='$LATEST'
)
for content in bot_details['clarificationPrompt']['messages']:
if response["message"] == content['content']:
return error_handling_method(event)
for content in bot_details['abortStatement']['messages']:
if response["message"] == content['content']:
return error_handling_method(event)
return response["message"]

希望对你有帮助。

关于aws-lambda - 有没有办法让 lambda 函数为 AWS Lex 机器人执行它的自定义错误提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47429808/

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