实现与 Amazon Lex QnAIntent 的精确匹配 机器学习博客
使用 Amazon Lex QnAIntent 实现精确匹配
关键要点
本文讨论如何通过 Amazon Lex QnAIntent 和 Amazon OpenSearch Service 实现精准回答。适用于需要遵循规章制度或品牌指南的企业客户。包含设置 OpenSearch Service 集群的步骤,并在 Lex 中配置 QnAIntent。这篇文章是 创建自然对话的 Amazon Lex QnAIntent 和 Amazon Bedrock 知识库 的延续。我们探讨了通过 Amazon Lex QnAIntent,结合 Amazon Bedrock 提供新的功能,利用自然语言处理和自身知识库为用户提供实时对话体验。
尽管在许多场景中,Amazon Bedrock 能够根据您的知识内容生成准确的回答,但一些企业客户出于合规需求或品牌指南的限制,需要某些问题以预先批准的回答逐字回复。针对这些用例,Amazon Lex QnAIntent 提供了与 Amazon Kendra 及 Amazon OpenSearch Service 知识库相结合的精确匹配功能。
接下来,我们将介绍如何设置和配置 OpenSearch Service 集群作为您的 Amazon Lex QnAIntent 知识库。此外,精确匹配也可以与 Amazon Kendra 配合使用,您可以创建索引并向索引中添加常见问题。如系列第一部分所述,您可以在 Amazon Lex QnA配置 下选择 Amazon Kendra 作为您的知识库,提供您的 Amazon Kendra 索引 ID,并选择精确匹配,以使您的机器人返回由 Amazon Kendra 返回的精确响应。
解决方案概述
在以下部分中,我们将逐步介绍如何创建 OpenSearch Service 域、创建 OpenSearch 索引并为其填充文档,以及测试 Amazon Lex 机器人与 QnAIntent 的配合。
前提条件
在创建 OpenSearch Service 集群之前,您需要创建一个 Amazon Lex V2 机器人。如果您没有可用的 Amazon Lex V2 机器人,可以按照以下步骤进行:
在 Amazon Lex 控制台中,选择导航窗格中的 Bots。选择 Create bot。选择 Start with an example。对于 Example 机器人,选择 BookTrip。输入您机器人的名称和描述。选择为您的 AWS 身份和访问管理 (IAM) 权限运行角色创建基本 Amazon Lex 权限的角色。对于 Is use of your bot subject to the Children’s Online Privacy Protection Act (COPPA),选择 No。选择 Next。在 Add Languages to Bot 部分保持所有默认设置。选择 Done 以创建您的机器人。创建 OpenSearch Service 域
完成以下步骤以创建您的 OpenSearch Service 域:
在 OpenSearch Service 控制台中,选择导航窗格中的 Managed clusters 下的 Dashboard。选择 Create domain。
对于 Domain name,输入您域的名称在本文中采用 mydomain 作为示例。对于 Domain creation method,选择 Easy create。
集群启动需要几分钟。完成后,您将看到 Domain processing status 下面的绿色 Active 状态。
创建 OpenSearch Service 索引
完成以下步骤以创建索引:
在域详细信息页面,复制 Domain endpoint (IPv4) 下的域端点以供后用。选择 IPv4 URL 链接。IPv4 链接将打开 OpenSearch Dashboards 登录页面。
输入您之前创建的用户名和密码。在 OpenSearch Dashboards 欢迎页面,选择 Explore on my own。您可以主动关闭或取消其他附加的模态窗口或弹出窗口。选择选项菜单,然后在导航窗格中选择 Dev Tools。在 Dev Tools 页面中,输入以下代码以创建索引,然后选择运行图标发送请求:
bashPUT mydomainindex{ mappings { properties { question { type text } answer { type text } } }}
如果成功,您将看到以下消息:
json{ acknowledged true shardsacknowledged true index mydomainindex}
输入以下代码以批量索引多个文档,以便稍后测试:bashPOST bulk{ index { index mydomainindex id mdi00001 } }{ question What are the checkin and checkout times answer Checkin time is 3pm and checkout time is 11am at all FictitiousHotels locations Early checkin and late checkout may be available upon request and availability Please inquire at the front desk upon arrival }{ index { index mydomainindex id mdi00002 } }{ question Do you offer airport shuttles answer Airport shuttles are available at the following FictitiousHotels locations FictitiousHotels Dallas Complimentary airport shuttle available to and from Dallas/Fort Worth International Airport Shuttle runs every 30 minutes from 5am11pm FictitiousHotels Chicago Complimentary airport shuttle available to and from OHare International Airport and Chicago Midway Airport Shuttle runs every hour from 5am11pm FictitiousHotels San Francisco Complimentary airport shuttle available to and from San Francisco International Airport Shuttle runs every 30 minutes from 5am11pm FictitiousHotels New York Complimentary shuttle available to and from LaGuardia Airport and JFK Airport Shuttle runs every hour from 5am11pm Please contact the front desk at your FictitiousHotels location to schedule airport shuttle service at least 24 hours in advance Shuttle services and hours may vary by location }{ index { index mydomainindex id mdi00003 } }{ question Is parking available What is the daily parking fee answer Selfparking and valet parking are available at most FictitiousHotels locations Daily selfparking rates range from 1530 per day based on location Valet parking rates range from 2540 per day Please contact your FictitiousHotels location directly for specific parking information and rates }后续省略以节省空间
如果成功,您会看到类似于下图的另一条消息。
如果您想更新、删除或添加自己的测试文档,请参考 OpenSearch 文档 API。
安易加速器永久免费版在设置 QnAIntent 之前,请确保您添加了要使用的 Amazon Bedrock 模型的访问权限。现在测试数据已填充到 OpenSearch Service 域中,您可以使用 Amazon Lex 机器人对其进行测试。
测试您的 Amazon Lex 机器人
要测试机器人,请完成以下步骤:
在 Amazon Lex 控制台中,导航到您创建的机器人的 QnAIntent 功能。选择语言,本篇文章中为 English (US)。在 Generative AI Configurations 下,选择 Configure。在 QnA configuration 下,选择 Create QnA intent。对于 Intent name,输入名称在本篇文章中使用 FicticiousHotelsFAQ。选择 Add。选择您刚刚添加的意图。在 QnA configuration 下,选择 OpenSearch 作为知识存储。对于 Domain endpoint,输入您之前复制的端点。对于 Index name,输入名称例如,mydomainindex。对于 Exact Response,选择 Yes。对于 Question Field,输入 question。对于 Answer Field,输入 answer。选择 Save intent。由于您使用 Easy create 选项启动了 OpenSearch Service 域,细粒度访问已默认启用。您需要找到 Amazon Lex IAM 角色并添加权限到 OpenSearch Service 域,以允许 Amazon Lex 与 OpenSearch Service 进行交互。
在导航面板中导航到您机器人的草稿版本。选择 IAM permissions runtime role 的链接。复制该角色的 ARN 以供后用。返回 OpenSearch Dashboards。如果您关闭了浏览器标签或导航离开此页面,您可以通过从上一步中找到的 IPv4 URL 再次找到此页面。在选项菜单中,选择 Security。选择导航窗格中的 Roles。选择角色 allaccess。选择 Mapped users,然后选择 Manage mapping。在 Backend roles 中,输入您之前复制的 IAM 运行角色 ARN。选择 Map。在 Amazon Lex 控制台中,返回您的机器人和 English (US) 语言。选择 Build 以构建您的机器人。选择 Test 以测试您的机器人。确保您的机器人 具备使用 QnAIntent 的权限,这些权限应默认自动添加。
当 Amazon Lex 测试聊天窗口启动时,输入您样本 OpenSearch Service 文档中的问题,如 “What are the checkin and checkout times”。清理
为了避免产生后续费用,请删除您在本文中创建的资源:
Amazon Lex V2 机器人OpenSearch Service 域结论
Amazon Lex QnAIntent 提供灵活性,允许使用不同的知识库根据您的文档和授权知识来源生成准确的响应。您可以选择让 Amazon Bedrock 根据知识库的结果生成问答,或使用 Amazon Kendra 或 OpenSearch Service 知识库生成精确的响应答案。
在本文中,我们演示了如何启动和配置 OpenSearch Service 域,向 OpenSearch Service 索引填充样本文档,并使用与 Amazon Lex QnAIntent 结合的索引配置精确响应选项。
您可以立即开始利用 Amazon Lex QnAIntent,转变客户体验。
关于作者
Josh Rodgers 是 AWS 的高级解决方案架构师,专注于旅行和酒店领域的企业客户。Josh 喜欢与客户合作,专注于无服务器技术、DevOps 和安全等复杂问题的解决。在工作之外,Josh 喜欢徒步旅行、演奏音乐、跳伞、绘画和与家