概述
构建生成式人工智能应用程序的其中一项主要挑战是复杂的云设置以及对深厚 AI 专业知识的需求。AWS 上的生成式人工智能应用程序生成器可简化此过程,让您无需广泛的 AI 知识即可开发、测试和部署 AI 应用程序。此解决方案通过轻松整合您的业务数据、比较大型语言模型(LLM)的性能、通过人工智能座席运行多步骤任务、快速构建可扩展的应用程序以及使用企业级架构部署这些应用程序,加快您的 AI 开发速度。生成式人工智能应用程序生成器附带一个随时可用的生成式人工智能聊天机器人和 API,可以快速集成到您的业务流程或应用程序中。
除了部署在 Amazon SageMaker 上的 LLM 之外,此解决方案还包括与 Amazon Bedrock 及其 LLM 的集成。它使用 Amazon Bedrock 工具进行检索增强生成(RAG)以增强 AI 响应,使用 Amazon Bedrock Guardrails 实施保护措施并减少幻觉,并使用 Amazon Bedrock 座席为复杂任务创建工作流。您还可以使用 LangChain 或 AWS Lambda 连接到其他 AI 模型。从简单的无代码向导开始,为对话搜索、AI 生成的聊天机器人、文本生成和文本摘要生成 AI 应用程序。
优势
该解决方案消除了部署具有不同配置的多个实例以及比较输出和性能的繁重工作,使用户能够快速进行试验。试用各种 LLM、提示工程、企业知识库、护栏、人工智能座席和其他参数的多种配置进行试验。
通过预先构建的连接器连接各种 LLM(例如通过 Amazon Bedrock 提供的模型),该解决方案使您可以灵活地部署自己选择的模型以及您喜欢的 AWS 服务和领先的 FM 服务。您还可以启用 Amazon Bedrock 座席来执行各种任务和工作流程。
该解决方案采用 AWS Well-Architected 设计原则构建,提供企业级安全性和可扩展性,同时具有高可用性和低延迟,可确保以高性能标准无缝集成到您的应用程序中。
通过集成现有项目或原生连接其他 AWS 服务来扩展此解决方案的功能。由于这是一个开源应用程序,因此您可以使用随附的 LangChain 编排层或 Lambda 函数来连接所选服务。
技术详情
您可以使用实施指南和随附的 AWS CloudFormation 模板(该模板部署三个独立的架构)来自动部署此架构:
- 座席用例 — 座席用例使用户能够交接任务,以使用 Amazon Bedrock 代理完成。您可以选择一个模型,用自然语言编写一些指令,然后 Amazon Bedrock 人工智能座席将通过连接到您的数据来源或其他 API 来分析、协调和完成任务,以满足您的请求。
- 文本用例 — 文本用例使用户能够体验使用生成式人工智能的自然语言界面。此用例可以集成到新的或现有的应用程序中,并且可通过部署控制面板进行部署,也可以通过提供的 URL 独立部署。
- 部署控制面板 — 部署控制面板是一个 Web UI,可用作管理控制台,供管理员用户查看、管理和创建其用例。客户可以通过该控制面板,使用 LLM 和数据的多种配置来快速试验、迭代和部署生成式人工智能应用程序。
-
座席用例
-
文本用例
-
部署控制面板
-
座席用例
-
第 1 步
业务用户使用部署控制面板部署用例。业务用户登录用例 UI。
第 2 步
Amazon CloudFront 提供托管在 Amazon Simple Storage Service(Amazon S3)存储桶中的 Web UI。
第 3 步
Web UI 利用使用 Amazon API Gateway 构建的 WebSocket 集成。API Gateway 由自定义 AWS Lambda Authorizer 函数提供支持,该函数会根据身份验证用户所属的 Amazon Cognito 组返回相应的 AWS Identity and Access Management(IAM)策略。第 4 步
Amazon Cognito 对用户进行身份验证,并为 CloudFront Web UI 和 API Gateway 提供支持。第 5 步
该解决方案将业务用户的传入请求从 API Gateway 传递到 Amazon Simple Queue Service(Amazon SQS)队列,然后再传递到 Lambda 函数。该队列支持 API Gateway 与 Lambda 集成的异步操作。队列将连接信息传递给 Lambda 函数,然后该函数将结果直接发布回 API Gateway WebSocket 连接,以支持长时间运行的推理调用。
第 6 步
Lambda 函数使用 Amazon DynamoDB 根据需要获取用例配置。
第 7 步
Lambda 函数使用用户输入和相关用例配置来构建请求,并将其有效载荷发送到 Amazon Bedrock 座席以实现用户的意图。第 8 步
当 Amazon Bedrock 座席返回响应时,Lambda 函数会通过 API Gateway WebSocket 将响应发送回去,以供客户端应用程序使用。第 9 步
该解决方案使用 Amazon CloudWatch 从各种服务收集操作指标,以生成自定义控制面板,使您可以监控部署的性能和运行状况。
-
文本用例
-
第 1 步
管理员用户使用部署控制面板部署用例。业务用户登录用例 UI。
第 2 步
CloudFront 提供托管在 S3 存储桶中的 Web UI。第 3 步
Web UI 利用使用 API Gateway 构建的 WebSocket 集成。 API Gateway 由自定义 Lambda Authorizer 函数提供支持,该函数会根据身份验证用户所属的 Amazon Cognito 组返回相应的 IAM 策略。该策略存储在 DynamoDB 中。第 4 步
Amazon Cognito 对用户进行身份验证,并为 CloudFront Web UI 和 API Gateway 提供支持。
第 5 步
来自企业用户的传入请求从 API Gateway 传递到 Amazon SQS 队列,然后传递到 LangChain Orchestrator。 LangChain Orchestrator 是 Lambda 函数和层的集合,后者为满足业务用户的请求提供业务逻辑。该队列支持 API Gateway 与 Lambda 集成的异步操作。队列将连接信息传递给 Lambda 函数,然后该函数将结果直接发布回 API Gateway WebSocket 连接,以支持长时间运行的推理调用。
第 6 步
LangChain Orchestrator 使用 DynamoDB 来获取配置的 LLM 选项和必要的会话信息,例如聊天记录。第 7 步
如果部署配置了知识库,则 LangChain Orchestrator 会利用 Amazon Kendra 或 Amazon Bedrock 知识库来运行搜索查询,以检索文档摘录。第 8 步
LangChain Orchestrator 使用来自知识库的聊天记录、查询和上下文,创建最终提示并将请求发送到托管在 Amazon Bedrock 或 Amazon SageMaker 上的 LLM。第 9 步
从 LLM 返回响应时,LangChain Orchestrator 会通过 API Gateway WebSocket 将响应流式传输回来,供客户端应用程序使用。第 10 步
该解决方案使用 CloudWatch 从各种服务收集操作指标,以生成自定义控制面板,使您可以监控部署的性能和运行状况。 -
部署控制面板
-
第 1 步
管理员用户登录部署控制面板 UI。第 2 步
CloudFront 提供托管在 S3 存储桶中的 Web UI。
第 3 步
AWS WAF 保护 API 免受攻击。此解决方案配置了一组名为 Web 访问控制列表(Web ACL)的规则,这些规则根据可配置、用户定义的 Web 安全规则和条件来允许、阻止或计算 Web 请求。
第 4 步
Web UI 利用一组通过 API Gateway 公开的 REST API。
第 5 步
Amazon Cognito 对用户进行身份验证,并为 CloudFront Web UI 和 API Gateway 提供支持。DynamoDB 表存储授权用户的 IAM 策略。第 6 步
Lambda 为 REST 端点提供业务逻辑。此支持 Lambda 函数会管理和创建必要的资源,以便使用 AWS CloudFormation 执行用例部署。第 7 步
DynamoDB 存储部署列表。第 8 步
管理员用户创建新用例时,支持 Lambda 函数会为请求的用例启动 CloudFormation 堆栈创建事件。第 9 步
系统将管理员用户在部署向导中提供的所有 LLM 配置选项都保存在 DynamoDB 中。部署使用此 DynamoDB 表在运行时系统配置 LLM。
第 10 步
该解决方案使用 CloudWatch 从各种服务收集操作指标,以生成自定义控制面板,使您可以监控解决方案的性能和运行状况。