首页 > 解决方案 > 我可以创建一个基于用户输入显示不同响应的 AWS Lex 机器人吗?

问题描述

我正在尝试创建一个 lex 机器人,让用户了解不同的选项。例如,它可以告诉用户可用的三种不同产品。我似乎找不到有关如何在不使用 lambda 函数的情况下执行此操作的文档,而且我不知道如何将用户输入从机器人本身传递到 lambda 函数以使用简单的“if/then ",然后返回相应的消息。必须使用 lambda 函数来仅根据输入给出响应似乎有些过分,但我被卡住了。谢谢。

标签: amazon-web-servicesaws-lambdaaws-lex

解决方案


为了更深入地了解 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 聊天机器人的最佳方式。


推荐阅读