问题标签 [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.

0 投票
1 回答
1088 浏览

amazon-web-services - 有没有办法在使用 Amazon Lex 创建的聊天机器人中实现多个意图代码流?

我正在尝试构建一个对话聊天机器人,它具有分支对话,导致根据结果调用不同的意图。就像是

一个

|\

| C

|/

D

因此,意图 A 是机器人的触发器,根据 A 中的输入,它可能会转到 C 以获取更多数据或转到 D。我正在浏览文档,但找不到任何东西来实现这种接口。我如何在 Lex 中实现这种聊天界面。

感谢您的时间和帮助

0 投票
1 回答
159 浏览

amazon-web-services - 如何在 Lex 中添加、编辑和删除话语

由于没有在两个插槽名称之间添加空格,我添加了一些话语并且有一些构建错误(我认为)。构建时出现错误:

找不到编辑示例话语的方法

如何编辑或删除话语或解决此错误

0 投票
1 回答
467 浏览

python - 根据传入请求的 contentType 在 Amazon Lambda 函数输出中指定 contentType?

我正在处理Amazon Lex bot并且在我的python Lambda函数中我有以下作为输出返回:

以下是我对该Lambda函数的输入:

请注意,这不是完整代码,而是输入和输出代码的一部分。

type-in现在我面临的问题是,如果我通过Lex测试机器人控制台提出问题,我的代码从头到尾都可以正常工作。但是,如果speak-in我提出问题,那么代码会在终点中断。现在,如果我是正确的,因为当我提出问题时它的contentType设置是正确的,但是当我提出问题时,它期望哪个不存在,所以它会中断。PlainTexttype-inspeak-inaudiocontentType

所以我的问题是如何访问contentType传入请求的?意味着如果用户正在打字,那么contentType上面的响应格式设置为PlainText,当用户说话时,contentType设置为audio

0 投票
0 回答
62 浏览

amazon-web-services - AWS Lex 和 Facebook 广告集成

我想知道是否可以将 Facebook 广告与 Lex 集成?我的意思是:

https://developers.facebook.com/docs/messenger-platform/guides/ads

如果是,是否有文档或示例?

谢谢-m

0 投票
1 回答
3236 浏览

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插槽。

0 投票
3 回答
1288 浏览

amazon-web-services - 允许 AWS Lex 接受任何用户输入

我正在构建一个聊天机器人,它会向用户提出一个具有多种可能响应的问题,例如:

机器人:“你想让你的用户简介说什么?”

用户A:“我的名字是鲍勃。#chatbots 很酷!!!”

或者

用户B:“123”

我希望 Lex 几乎可以接受任何用户响应。目前,如果用户响应与现有槽不兼容,它将不断重复相同的问题。

是否有一个内置插槽,或者有一种方法可以构建一个以这种方式运行的自定义插槽?

0 投票
0 回答
431 浏览

amazon-web-services - 在同一话语上达到第二次执行 lambda

使用 AWS Lex 和 Lambda,我正在尝试构建一个 lambda 函数,该函数首先验证调用的意图,然后继续提出问题(为槽分配值)。

在 fulfimentCodeHook 快结束时,出现错误, “在同一话语上达到了第二次执行 lambda”

0 投票
2 回答
1312 浏览

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 方法。

0 投票
1 回答
505 浏览

python - Lex Bot 控制台上的错误 - 在同一话语上达到第二次执行 lambda

我在 Lex 中创建了一个机器人,然后在同一个机器人中创建了两个意图 -intent1并分别intent2使用话语get me a taxi nowI 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 控制台出错。

此错误可能是什么问题?

0 投票
1 回答
602 浏览

amazon-lex - Amazon-lex 为所有输入返回澄清提示