本指南演示了如何使用 AWS 人工智能(AI)服务和开源框架,通过 Amazon Aurora PostgreSQL 和 pgvector 开源扩展来构建高性能检索增强生成(RAG)聊天机器人。Pgvector 配置为向量数据库,支持使用分层可导航小世界(HNSW)索引算法进行高效的向量搜索。聊天机器人允许用户上传 PDF 文件、以自然语言提问并根据文件内容获得答案。借助 Aurora 的可扩展性、可用性和成本效益,您可以在全球范围内运行自然语言处理聊天机器人。

请注意:[免责声明]

架构图

[架构图描述]

下载架构图 PDF 

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 进行自然语言处理、聊天机器人和情感分析

这篇博文演示了如何使用 LangChain 和 Streamlit 构建用于问答的交互式聊天机器人应用程序,并利用 pgvector 及其与 Aurora Machine Learning 的原生集成进行情感分析。

免责声明

示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。

本指南中提及第三方服务或组织并不意味着 Amazon 或 AWS 与第三方之间存在认可、赞助或从属关系。AWS 的指导是一个技术起点,您可以在部署架构时自定义与第三方服务的集成。

此页内容对您是否有帮助?