问题标签 [amazon-lex]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-web-services - 有没有办法在使用 Amazon Lex 创建的聊天机器人中实现多个意图代码流?
我正在尝试构建一个对话聊天机器人,它具有分支对话,导致根据结果调用不同的意图。就像是
一个
|\
| C
|/
D
因此,意图 A 是机器人的触发器,根据 A 中的输入,它可能会转到 C 以获取更多数据或转到 D。我正在浏览文档,但找不到任何东西来实现这种接口。我如何在 Lex 中实现这种聊天界面。
感谢您的时间和帮助
python - 根据传入请求的 contentType 在 Amazon Lambda 函数输出中指定 contentType?
我正在处理Amazon
Lex
bot
并且在我的python
Lambda
函数中我有以下作为输出返回:
以下是我对该Lambda
函数的输入:
请注意,这不是完整代码,而是输入和输出代码的一部分。
type-in
现在我面临的问题是,如果我通过Lex
测试机器人控制台提出问题,我的代码从头到尾都可以正常工作。但是,如果speak-in
我提出问题,那么代码会在终点中断。现在,如果我是正确的,因为当我提出问题时它的contentType
设置是正确的,但是当我提出问题时,它期望哪个不存在,所以它会中断。PlainText
type-in
speak-in
audio
contentType
所以我的问题是如何访问contentType
传入请求的?意味着如果用户正在打字,那么contentType
上面的响应格式设置为PlainText
,当用户说话时,contentType
设置为audio
?
amazon-web-services - AWS Lex 和 Facebook 广告集成
我想知道是否可以将 Facebook 广告与 Lex 集成?我的意思是:
https://developers.facebook.com/docs/messenger-platform/guides/ads
如果是,是否有文档或示例?
谢谢-m
amazon-web-services - 亚马逊 lex 中没有枚举值的自定义插槽类型
我正在尝试构建一个机器人来更改存储在数据库中的用户信息。
我的第一个想法是创建两种插槽类型,例如{toChange}
用户{newValue}
可以说“将我的名字更改为 Peter Griffin”或“我的新电子邮件是 user@mail.com”。
事实证明 Lex 无法处理这些自定义字符串输入。我必须为用户可以拥有的每个值创建一个槽类型:{name}
with AMAZON.Person
,{address}
withAMAZON.PostalAddress
等等,并让 Lambda 处理正确的槽来引出。
问题是 Lex 不提供 IBAN 格式(或任何其他格式)的电子邮件或银行帐号的插槽类型。
如果我使用带有空枚举列表的自定义插槽类型,我只能输入文本,而不是数字。此外,空格和特殊字符如 . 和 @ 无法识别,Lex 再次要求输入。
有没有办法做到这一点?我想到了一些事情,比如在@之前询问邮件的第一部分,然后询问提供者,最后填写国家代码。但这离用户友好还很远。
[编辑]
在测试过程中,我发现亚马逊方面目前还没有验证AMAZON.PostalAddress
。我可以直接输入我想要的任何内容,它会被接受,比如让我们说一个电子邮件地址或一个帐号:twinkle:
目前这种方法效果很好,但绝对不能保证它会在未来保持这种状态,所以我的问题仍然是开放的。
PS:像这样,我能够使用 and 遵循我的第一种方法{toChange}
,{newValue}
其中第一种是具有枚举值的自定义插槽类型,而后者是一个AMAZON.PostalAddress
插槽。
amazon-web-services - 允许 AWS Lex 接受任何用户输入
我正在构建一个聊天机器人,它会向用户提出一个具有多种可能响应的问题,例如:
机器人:“你想让你的用户简介说什么?”
用户A:“我的名字是鲍勃。#chatbots 很酷!!!”
或者
用户B:“123”
我希望 Lex 几乎可以接受任何用户响应。目前,如果用户响应与现有槽不兼容,它将不断重复相同的问题。
是否有一个内置插槽,或者有一种方法可以构建一个以这种方式运行的自定义插槽?
amazon-web-services - 在同一话语上达到第二次执行 lambda
使用 AWS Lex 和 Lambda,我正在尝试构建一个 lambda 函数,该函数首先验证调用的意图,然后继续提出问题(为槽分配值)。
在 fulfimentCodeHook 快结束时,出现错误, “在同一话语上达到了第二次执行 lambda”
amazon-web-services - 如何使用其余 API 构建 Amazon Lex 机器人?
根据http://docs.aws.amazon.com/lex/latest/dg/API_Operations_Amazon_Lex_Model_Building_Service.html ,您可以创建或更新机器人和意图/插槽(Put{Bot|Intend|Slot}、Create{Bot|Intend|Slot }版本)。
因此,通过使用 Put*,我可以配置一个机器人,使用 Create*Version 我可以发布一个,但为了发布它,首先你需要构建它,我找不到它的 API 方法。
python - Lex Bot 控制台上的错误 - 在同一话语上达到第二次执行 lambda
我在 Lex 中创建了一个机器人,然后在同一个机器人中创建了两个意图 -intent1
并分别intent2
使用话语get me a taxi now
和I wan a taxi to {Location} on {TravelDate} at {TaxiTime}
(第一个在 中intent1
,第二个在 中intent2
)。这两个意图都调用了不同的 lambda 函数和内部 lambda 函数,我访问 RDS 以添加出租车的预订信息。当我从 Lex 控制台通过说两个话语中的任何一个进行测试时,lambda 函数完全执行,因为我可以看到数据库记录已更新,但在 Lex 机器人测试控制台上我看到了Reached second execution of fulfillment lambda on same utterance Lex error
。在我的代码中,我有这一行:
我的猜测是delegate()
上面代码中的调用导致了问题,因为在我的日志文件中,我可以看到前两个调试日志为 Confirmed 和 None 值,但最后一个 logger.debug() 不在日志文件中,这意味着 delegate()被调用,这导致 Lex 控制台出错。
此错误可能是什么问题?