问题标签 [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 投票
2 回答
772 浏览

amazon-lex - 在 Amazon Lex 控制台中访问 Lambda 功能

我开始使用 Amazon Lex 构建聊天机器人。我一直在关注他们的示例,但一个问题是我无法在用户控制台中使用 Lambda 功能。我不知道这是否是由于我在控制台中看到的资源 404 造成的,或者是否无法通过 UI 控制此功能。

我无法根据意图在 Fulfillment 下的 AWS Lambda 函数字段中键入内容,但我不知道在哪里填充该下拉列表中的内容。该页面确实有一些 404,特别是在加载 /lex/api/iam 资源时。

有人熟悉 Lex 控制台吗?我查看了文档,我禁用了所有可能会干扰的浏览器扩展,我觉得我错过了一些东西,但不知道是什么。感谢您阅读,如果您已经走到了这一步。

在此处输入图像描述

在此处输入图像描述

0 投票
2 回答
665 浏览

android - Amazon Lex 机器人仅适用于使用 AWS Mobile Hub 制作的示例应用程序中的 Speech to Speech 演示

我在 AWS Mobile Hub 中创建了一个项目,并尝试将 Lex 对话机器人部署到应用程序中。我正在使用安卓工作室。我遇到了其中一个机器人的问题。这个机器人是一个简单的常见问题聊天机器人,它使用 Lambda 代码钩子实现来发布用户问题的答案。

该机器人在 Lex 控制台和 Slack 频道中都能完美运行。但是在示例应用程序中,它仅适用于语音到语音演示当我尝试文本到文本演示时,机器人从不响应用户输入,并且应用程序经常崩溃。

我下载并测试了几个集成了不同机器人的示例应用程序。所有没有 lambda 代码挂钩的机器人都可以在文本和语音演示中完美运行。然而,具有 lambda 代码挂钩的机器人仅在语音演示中工作。

编辑:我再次尝试并发现带有 lambda 代码挂钩的机器人确实会响应,但前提是响应委托给 Lex 并且来自控制台中设置的配置,或者响应来自 Lambda 输入验证代码挂钩。当预期响应来自 Lambda实现代码挂钩(使用 PostContent 运行时 API 操作)时,它不会响应。

我想也许我写错了我的 Lambda 函数,所以我还使用示例 OrderFlowers 机器人及其示例代码挂钩进行了测试,并得到了相同的结果。

请注意,Lambda 函数不会引发调用错误,所有调用都已成功处理,但未出现响应。

关于如何成功获得文本履行响应的任何想法?

0 投票
1 回答
525 浏览

amazon-web-services - Amazon Lex 从 Twilio 获取 java lambda 函数处理程序中的传入 SMS 号码?

我创建了一个 lex 短信聊天机器人并将其发布到 Twilio SMS 频道。在我的 java lambda 实现 handleRequest 函数中,我收到 2 个参数:一个 Input 对象和一个 Context。输入具有某种类型的系统生成的用户 ID,但我需要来自 Twilio 的传入短信的电话号码。

我已按照以下说明将 Twilio 配置为通过 webhook 调用 Lex:

http://docs.aws.amazon.com/lex/latest/dg/twilio-bot-association.html#twilio-bot-assoc-create-assoc

我正在使用系统在 Lex 和 Twilio 之间创建的 webhook 回调 url,并且如果可能的话,我希望避免在网关 API 和 lambda 之间编写我自己的 Lex-Twilio。

我想我在 Twilio 中缺少一个配置来将它发送给 Lex 可能吗?我没有设置任何 TwilML 应用程序或任何东西,只是将 SMS 号码链接到我的 lex 的 webhook 回调 url。除了获取传入的短信号码外,一切正常。

更新:
我用我的 java lambda 函数中的输入对象和上下文用尽了所有可能性。我想没有办法从 Java 中的 twilio 获取有效负载。我尝试切换到输入流处理程序,但仍然只有此处文档中定义的输入格式:http: //docs.aws.amazon.com/lex/latest/dg/lambda-input-response-format.html
我有咬紧牙关,构建我自己的网关 API 和节点处理程序。它只是位于 lex 之前的一层,将 twilio 转换为 lex 输入格式,反之亦然。它使用传入的电话号码更新 userId。
本教程在执行此操作时非常有用:
https ://aws.amazon.com/blogs/ai/integrate-your-amazon-lex-bot-with-any-messaging-service/

仅仅为了获得一个额外的字段就需要做很多工作,但它确实为我提供了在未来更轻松地切换 SMS 提供商的灵活性。

0 投票
1 回答
1160 浏览

python - Python AWS Lambda字符串参数构造函数/工厂方法从字符串值问题反序列化

我正在 Python 中的 AWS Lambda 中开发一个 Amazon Lex 聊天机器人,它将进行 API 发布调用并获得 JSON 字符串中的响应,如下所示

但我只对 id 值感兴趣,所以我将 json 转换为字典,如下所示并获取 id 值

如果我在 Lambda 控制台中测试代码,我会得到输出

AWS Lambda 控制台中的输出

但我在我的聊天机器人中得到如下输出

我的源代码如下:

请帮助我提前解决这个问题:)

0 投票
0 回答
609 浏览

react-native - 反应原生插件以集成 amazon polly 或 lex

我正在尝试将亚马逊 lex 集成到本机应用程序中,文本 api 工作正常,但我无法将音频流式传输到 lex 流式 api。

我尝试了 react-native-audio-toolkit 和 react-native-fetch-blob 插件,但没有成功,感谢任何帮助或建议。

谢谢,

0 投票
1 回答
633 浏览

amazon-web-services - Amazon Lex 重复 lambda 函数错误

我一直在尝试为我正在制作的 Lex 聊天机器人制作一个 lambda 函数,但是每当我的意图调用该函数时,它总是给我同样的错误,我已经厌倦了。我正在使用 node.js。它给我的错误信息是:

无论我输入哪种 lambda 函数,都会发生这种情况。有什么答案吗?

0 投票
1 回答
42 浏览

nlp - 当需要更具体的输入时,将抽象或未定义的引用映射到实体

我们有一个应用程序,我们将在其中收集用户的地址。在当前的实现中,我们使用实时代理来执行此操作。一些用户在提示输入最终帐单地址时会说“只需使用我的帐单地址”或“与我的当前地址相同”之类的话。新的实现将是一个聊天机器人,可以在其中一些请求到达代理之前尝试并满足它们。

我们确实可以通过 API 查找获得这些信息,我从设计的角度询问更多如何让我们的处理程序应用程序(通常是 AWS lambda)知道我们需要在提示确认履行之前进行查找。

我想到了几点:

  1. 训练 NLP 将字符串“当前地址”和“账单地址”检测为地址实体
  2. 为此类话语创建新意图并分别处理它们
  3. 在当前意图中为此类话语创建一个新实体类型(例如,不是 postalAddress),并将它们作为同一履行的一部分进行处理
  4. 只需重新提示用户,或要求他们说明他们的地址是什么

我只是在这里寻找最务实的方法,因为这个问题与我们解决的大多数其他问题不同。

0 投票
3 回答
1797 浏览

amazon-web-services - 如何使用 ElicitIntent?

想象一下,你有一个有 2 个意图的机器人,每个意图都有自己的 lambda 函数。

如果用户说“你好”,我想ElicitIntent从机器人那里找出他们想要的东西。这在代码中的什么位置?哪个 lambda 函数?我似乎找不到将 lambda 函数附加到整个机器人的地方。

0 投票
2 回答
554 浏览

c# - 为 Amazon Lex 编码语音输入?

我遇到了 Amazon Lex 的语音输入编码问题。

如果我将 InputStream 分配为空,它会起作用,我会收到来自 Lex 的默认语音回答:“我该如何帮助你”

如果我尝试使用下面的编码(Lex 要求:16KHz、8 位、1 通道)发送录制的语音“你好吗”

然后就不行了,大约 20~25s 后 Lex 服务器会返回 null。

在此处输入图像描述

谁能告诉我如何对 wav 文件进行编码以使其与 Amazon Lex 一起使用?顺便说一句,我使用 Visual Studio 2017、C# 和 NAudio 库。

0 投票
1 回答
320 浏览

ios - AWSLexVoiceButton 提示和客户端履行响应

我正在使用 AWS 开发工具包将 AWSLexVoiceButton 添加到我的应用程序中。我已在我设置的 Intent 中将其配置为客户端实现,因为我想让应用程序根据我的 Intent 的 AWS 控制台中的语音命令在屏幕上显示一些内容:

AWS 履行

这一切都有效,当机器人识别我的意图时,我在下面的代码中得到一个回调:

两个问题:

  1. 当我点击 AWSLexVoiceButton 时,没有任何音频指示它正在收听,并且您甚至看不到您点击按钮的任何迹象,除非您发出足够大的声音以使其麦克风声音检测动画。我无法添加诸如“有什么可以帮助您的?”之类的语音提示。因为最初点击按钮时没有AWSLexVoiceButtonDelegate回调。

    Q:有没有什么办法可以在 Lex 众生听的时候添加语音提示?

  2. 同样,没有音频指示客户端正在实现意图。因为有回调,所以我可以添加自己的响应。但为此,我手动设置了一个AVAudioPlayerAWS Polly 并与它集成,以say我编写的自定义方法将我的文本转换为语音。我的方法有效,但似乎它一定是错误的方法。

    问:是否有任何方法可以触发 Lex 作为客户端执行的结果来提供自定义音频响应?