[SEO 副标题]
本指导将演示人工智能生成的虚拟个人造型师如何为零售业消费者提供便捷、个性化的造型体验。人工智能造型师利用先进的机器学习,通过分析用户的造型、体型、所处的位置、天气以及其他上下文因素,为特定的消费者即时推荐高度个性化的定制服装。这样,人工智能技术可以随时提供造型建议,而无需人工干预,因此为希望即时获得个性化时尚建议的用户提供了非常便捷的定制造型体验。
请注意:[免责声明]
架构图
[架构图描述]
步骤 1
该应用程序托管在适用于 Amazon Elastic Container Service(Amazon ECS)的 AWS Fargate 上,由 Amazon CloudFront 提供服务,并与 AWS WAF 配合使用。
步骤 2
用户通过 Amazon Cognito 用户池向该应用程序进行身份验证。该应用程序从 AWS Secrets Manager 检索 API 密钥、URL 和 Amazon Cognito 用户池 ID。
步骤 3
使用存储在 Secrets Manager 中的 API URL 和密钥,将用户查询发送到 Amazon API Gateway。
步骤 4
调用通过 /text 路由的 AWS Lambda 文本生成函数,以调用 Agents for Amazon Bedrock。
步骤 5
Agents for Bedrock 利用用户所处的位置确定天气条件,并提供造型建议。它使用存储在 Amazon Simple Storage Service(Amazon S3)中的数据。使用 Amazon Bedrock 知识库在 Amazon OpenSearch 无服务器中对这些数据进行索引。
步骤 6
当用户发起一个请求以生成图像时,/image 路由会触发 Lambda 图像生成函数。
步骤 7
Lambda 图像生成函数查询 Amazon Bedrock 图像生成模型,此模型将 Base64 编码的图像发回给 Lambda 函数。随后将图像传输回 API Gateway。
步骤 8
当用户启动产品搜索功能时,API Gateway 会调用 /search 端点,此端点会搜索存储在 Amazon DynamoDB 中的图像嵌入。存储在 Amazon S3 中的图像会触发 Lambda 函数,以创建多模态图像嵌入并将其插入到 DynamoDB 数据库中。
步骤 9
负责产品图像搜索的 Lambda 函数会创建查询嵌入,并利用余弦相似度从 DynamoDB 数据库中搜索相似的图像。
随后,将相似度最高的三个图像作为来自 API Gateway 的响应返回,并在浏览器应用程序中显示给最终用户。
步骤 10
产品目录摄取管道:当用户将新的产品目录文件上传到一个 Amazon S3 存储桶时,会触发一个 Lambda 事件,此事件会在 Amazon Bedrock 知识库上调用一个文档摄取作业。
随后,Amazon Bedrock 知识库会在向量数据库(特别是 OpenSearch 无服务器)内创建一个向量索引。当数据存储在向量数据库中并为其建立索引时,它将变得可供搜索。
步骤 11
图像摄取管道:当用户将图像从他们的时尚目录上传到一个 Amazon S3 存储桶时,会触发一个 Lambda 事件。
此事件会调用 Amazon Bedrock 上提供的 Amazon Titan 多模态嵌入 G1 模型,以便为传入的图像创建图像嵌入。随后,为生成的图像嵌入建立索引,并将这些图像嵌入存储在 DynamoDB 中。
注意
在生产就绪型应用程序中,出于存储图像嵌入的目的,可以将 DynamoDB 替换为 OpenSearch 无服务器。
开始使用
Well-Architected 支柱
当您在云中构建系统时,AWS Well-Architected Framework 可以帮助您了解所做决策的利弊。框架的六大支柱使您能够学习设计和操作可靠、安全、高效、经济高效且可持续的系统的架构最佳实践。使用 AWS 管理控制台中免费提供的 AWS Well-Architected Tool,您可以通过回答每个支柱的一组问题,根据这些最佳实践来检查您的工作负载。
上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。
-
卓越运营
本指导中的解耦架构提高了可扩展性和可靠性。例如,API Gateway 用作传入请求的入口点,并将它们路由到适当的 Lambda 函数以进行处理。Lambda 使应用程序能够根据需求自动扩展,无需手动管理基础设施。Lambda 函数负责处理专业任务,例如文本生成、图像生成和产品搜索。此外,Amazon S3 和 DynamoDB 提供了持久、可扩展的存储功能,其中 Amazon S3 主要支持图像等非结构化数据,而 DynamoDB 可管理用户偏好和产品信息等结构化数据。另外,OpenSearch 无服务器用作应用程序知识库的向量数据库,促进了高效、灵活的信息检索。
-
安全性
Amazon Cognito 提供了安全的用户身份验证和授权,只允许经过授权的用户访问应用程序,并保护他们的数据。Secrets Manager 安全地存储敏感凭证,并防止它们暴露在应用程序的代码或配置中,而 CloudFront 通过流量加密和访问控制提高网站安全性,并与 AWS Shield Standard 集成。此外,已将所有 AWS Identity and Access Management(IAM)策略的范围缩小到服务正常运行时所需的最低权限。
-
可靠性
Elastic Load Balancing(ELB)将来自商店移动应用程序的流量请求路由到运行状况良好的 Amazon Elastic Compute Cloud(Amazon EC2)实例。CloudFront 在全球范围内分发基于 Streamlit 的前端,并将内容缓存到更靠近用户的地理位置,以便为用户提高可靠性和可用性。此外,通过 CloudWatch 等服务整合监控和可观测性,因此能够快速识别和解决可能出现的任何可靠性问题。
-
性能效率
API Gateway、Lambda、Amazon S3、DynamoDB 和 OpenSearch 无服务器旨在处理大量的流量、提供低延迟响应并自动扩展,以满足应用程序不断变化的性能需求。此外,CloudFront 的全球内容分发网络在更靠近用户的位置缓存内容以便为用户减小延迟,从而提高应用程序的性能。
-
成本优化
根据调用次数和执行时长对 Lambda 函数进行收费,这样即可在不产生固定基础设施成本的情况下对应用程序进行纵向扩展和缩减。此外,Amazon S3 和 DynamoDB 提供了即用即付定价模式,用户只需为他们消耗的存储和吞吐量付费,而无需预先承诺。另外,OpenSearch 无服务器是一款无服务器产品,提供了一个经济实惠的框架以运行应用程序知识库,而无需管理底层基础设施。此外,CloudFront 的定价基于传输的数据量和 HTTP/HTTPS 请求的数量,因此用户只需为他们实际消耗的资源付费。
-
可持续性
Lambda 函数旨在根据需求自动纵向扩展和缩减,因此在任何给定的时刻都只预置所需的最少资源,从而减少整体能耗和浪费。Amazon S3 和 DynamoDB 提供了高效的数据存储和检索模式,最大限度地减少了对大型能源密集型数据中心和硬件的需求。此外,CloudFront 的全球内容分发网络可以降低用户对访问远程数据中心数据的需求,并通过从更靠近最终用户的位置分发内容来提高能源效率。
相关内容
免责声明
示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。
本指南中提及第三方服务或组织并不意味着 Amazon 或 AWS 与第三方之间存在认可、赞助或从属关系。AWS 的指导是一个技术起点,您可以在部署架构时自定义与第三方服务的集成。