[SEO 副标题]
本指南演示了如何使用 AWS 人工智能(AI)服务和开源框架,通过 Amazon Aurora PostgreSQL 和 pgvector 开源扩展来构建高性能检索增强生成(RAG)聊天机器人。Pgvector 配置为向量数据库,支持使用分层可导航小世界(HNSW)索引算法进行高效的向量搜索。聊天机器人允许用户上传 PDF 文件、以自然语言提问并根据文件内容获得答案。借助 Aurora 的可扩展性、可用性和成本效益,您可以在全球范围内运行自然语言处理聊天机器人。
请注意:[免责声明]
架构图
[架构图描述]
第 1 步
从 GitHub 存储库下载 AWS CloudFormation 模板并部署 CloudFormation 堆栈。
第 2 步
CloudFormation 堆栈部署 AWS Cloud9 实例、Amazon Aurora PostgreSQL 集群、Streamlit 自定义聊天机器人应用程序以及本指南所需的其他先决条件。
第 3 步
设置环境变量以连接到 Aurora PostgreSQL 实例,创建 pgvector 扩展,并启动 Streamlit 应用程序。
第 4 步
Streamlit 应用程序启动后,上传 PDF 文档进行处理。这会将文档分割成多个区块,并使用 Amazon Bedrock 中的 Amazon Titan 模型将它们转换为向量。Amazon Bedrock 是一项完全托管的服务,提供多种高性能基础模型(FM)。
第 5 步
将向量嵌入加载到 Aurora PostgreSQL 集群中。
第 6 步
用户在聊天机器人应用程序中以自然语言提出问题。
第 7 步
使用 Amazon Titan 模型将 Streamlit 应用程序中的问题转换为嵌入。然后将向量与 Aurora PostgreSQL 向量存储进行比较,以识别语义上最相似的向量。
第 8 步
将用户问题和上下文从向量数据库传递到大型语言模型(LLM)。在此示例中,使用了 Amazon Bedrock 上 Anthropic 的 Claude 3 模型。
第 9 步
LLM 根据相关内容生成响应并在聊天机器人应用程序中显示响应。
Well-Architected 支柱
当您在云中构建系统时,AWS Well-Architected Framework 可以帮助您了解所做决策的利弊。框架的六大支柱使您能够学习设计和操作可靠、安全、高效、经济高效且可持续的系统的架构最佳实践。使用 AWS 管理控制台中免费提供的 AWS Well-Architected Tool,您可以通过回答每个支柱的一组问题,根据这些最佳实践来检查您的工作负载。
上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。
-
卓越运营
Amazon Bedrock 让您可以轻松访问多个 FM。在本指南中,我们通过 Amazon Bedrock 使用 Amazon Titan 嵌入模型为文本块生成向量嵌入。对于对话式聊天机器人,我们使用 Anthropic Claude 3 LLM。
此外,还提供了一个 CloudFormation 脚本,用于创建此指南的所有必要先决条件,只需单击一下即可部署。
-
安全性
AWS Secrets Manager 可安全存储数据库用户凭证,防止未经授权的访问和密码篡改问题。Secrets Manager 还提供其他安全功能,例如自动密钥轮换和跨 AWS 区域轻松复制密钥,以及对密钥使用情况的审计和监控。
此外,Aurora 存储集群使用 AWS Key Management Service(AWS KMS)密钥进行加密。这些服务共同降低了安全漏洞的风险。
-
可靠性
Aurora 配备 pgvector 扩展,提供向量存储和搜索功能,以及关系数据库的弹性功能。Aurora 集群在三个可用区(AZ)中存储六个数据副本,为数据提供高可用性。如果可用区(AZ)或实例失效,Aurora 将自动失效转移到另一个 AZ 中的副本。Aurora 还会将数据持续备份到 Amazon Simple Storage Service(Amazon S3)。
-
性能效率
Amazon Titan 文本嵌入 v2 经过优化,可提供高准确性,非常适合用于语义搜索。当从 1024 个维度减少到 512 个维度时,Titan 文本嵌入 V2 可保持大约 99% 的检索准确性。具有 256 个维度的向量可保持 97% 的准确性。这意味着您可以节省 75% 的向量存储(从 1024 个维度减少到 256 个维度),并保持较大向量提供的大约 97% 的准确度。
借助 Amazon Bedrock 上提供的 Amazon Titan 文本嵌入模型,可以轻松使用模型并根据使用案例切换模型。最后,Amazon Titan 文本模型有助于确保 RAG 流程为 LLM 检索到最相关的信息,从而得出更准确的答案。
-
成本优化
Amazon Bedrock 提供两种定价计划供您选择:按需定价和预置吞吐量定价。按需模型允许您按使用量付费使用 FM,这是一种经济高效的模式,并且可以让您根据需要灵活地尝试不同的模型。
-
可持续性
在本指南中,我们使用临时资源来降低成本,例如使用用于集成式开发环境(IDE)的 AWS Cloud9 实例,而不是专用的 Amazon Elastic Compute Cloud(Amazon EC2)实例。此外,我们正在为 Aurora 数据库集群使用 AWS Graviton 处理器实例类型,其能耗比同等性能的同类 Amazon EC2 实例低 60%。
相关内容
利用 pgvector 和 Amazon Aurora PostgreSQL 进行自然语言处理、聊天机器人和情感分析
免责声明
示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。
本指南中提及第三方服务或组织并不意味着 Amazon 或 AWS 与第三方之间存在认可、赞助或从属关系。AWS 的指导是一个技术起点,您可以在部署架构时自定义与第三方服务的集成。