amazon-web-services - 我可以创建一个基于用户输入显示不同响应的 AWS Lex 机器人吗?
问题描述
我正在尝试创建一个 lex 机器人,让用户了解不同的选项。例如,它可以告诉用户可用的三种不同产品。我似乎找不到有关如何在不使用 lambda 函数的情况下执行此操作的文档,而且我不知道如何将用户输入从机器人本身传递到 lambda 函数以使用简单的“if/then ",然后返回相应的消息。必须使用 lambda 函数来仅根据输入给出响应似乎有些过分,但我被卡住了。谢谢。
解决方案
为了更深入地了解 Lex 机器人的工作原理,该服务使您能够定义话语(“if”条件),它会智能地尝试执行模糊匹配,以确定用户是否说了符合其中之一的内容。你定义的话语。您可以在 AWS 控制台中声明和修改这些话语,此处提供了示例。
这个条件应用程序的“then”部分是您可以定义在用户输入与定义的话语(状态)匹配后发生的情况,其中处理一些基本计算,最容易以 Lambda 函数的形式。
对于一些简单的事情,比如一旦满足条件就返回静态文本/信息:从你的lambda_handler
函数返回一个具有正确结果的字符串。一个准系统的伪代码 Python 实现如下所示:
# Here's an implementation where you have an intent of a user asking
# for more info about a particular object (info_type as defined in Lex console).
def lambda_handler(event, context):
info_name = event['info_type']
if info_name = 'business_hours':
return "Our business hours are 9am-5pm"
elif info_name = 'slogan':
return "We're customer obsessed"
else:
return "Sorry, we don't have info about this!"
根据您希望如何设置应用程序,您可以决定如何拆分不同话语之间的逻辑以及传入 prop 数据的 if/then 案例。如果您有更复杂的查询、问题类型和计算,这些都将决定构建 Lex 聊天机器人的最佳方式。
推荐阅读
- c++ - 为什么 srand 需要一个存储类?
- r - 文本参数未正确传递给绘图条形图中的悬停模板
- .net - HotChocolate:如何使用 [ExtendObjectType] 将指令绑定到解析器中的字段
- flutter - 当我尝试更改其状态(更改语言环境)时,Flutter App 重新启动
- validation - 与 Apple 的域验证失败。请验证该文件在验证路径中是否可用,然后重试。在 Braintree 仪表板中
- java - 打印卫生专业人员的个人预约
- mysql - 当迭代 TADOQuery 结果集时,它总是从服务器获取,还是从缓存中迭代?
- ios - 带有 Xcode 12.5 的 M1 Mac 从不运行 Flutter 项目
- pandas - 根据列名 pandas 组合行
- typescript - 如何在 Vuex 商店中使用 v-model 和 v-for 字符串数组?