Amazon Bedrock知识库:轻松提问单个文档

作者 Suman Debnath和Sebastian Munera Alvarez日期 2024年4月26日类别 Amazon Bedrock、人工智能、生成AI、中级 (200)永久链接 点击查看评论 点击查看

关键要点

Amazon Bedrock知识库现推出了一项新功能,可以直接与单个文档进行对话,支持无缝提问,无需复杂的设置。该功能使企业能够安全地利用基础模型FMs访问公司数据,简化了内容检索和生成工作流程。用户只需提供相关的数据文件,并选择所需的FM,即可开始提问,不再需要设置向量数据库或数据导入步骤。

在2023年的AWS reInvent大会上,我们宣布了Amazon Bedrock知识库的正式发布。通过Amazon Bedrock知识库,您可以将基础模型(FMs)与公司数据安全连接,提供完全托管的检索增强生成RAG体验。

在之前的文章中,我们介绍了诸如混合搜索支持和元数据过滤以提高检索精度等新功能,以及Amazon Bedrock Knowledge Bases管理端到端RAG工作流。

今天,我们引入了一项新功能,允许您与文件进行对话,无需任何设置。通过这一新功能,您可以安全地在单个文档上提问,无需设置向量数据库或导入数据,使企业可以轻松使用其内部数据。您只需提供相关的数据文件,选择FM即可开始。

在进入这一功能的详细信息之前,让我们先了解什么是RAG、其优点以及这一新功能如何满足特定需求的内容检索和生成。

魔方加速器app下载

什么是检索增强生成(RAG)?

由FM驱动的人工智能(AI)助手在提供信息时存在局限性,例如:提供过时的信息或在其训练数据之外缺乏上下文。RAG通过允许FM在生成响应之前交叉参考权威知识源,解决了这些问题。

使用RAG时,当用户提出问题时,系统会从一个精心策划的知识库如公司文档中检索相关上下文,并将这些上下文提供给FM,FM则利用这些上下文生成更有根据和精确的响应。RAG通过增强FM的能力,利用企业的专有知识,使聊天机器人和AI助手能够提供最新的、以上下文为特定的信息,而无需重新训练整个FM。在AWS,我们认识到RAG的潜力,并通过Amazon Bedrock知识库简化其采用,提供完全托管的RAG体验。

短期即时信息需求

尽管知识库承担了所有重负担,作为一个持久的企业知识库,您可能仍需要在特定任务或分析中临时访问数据,尤其是在孤立的用户会话中。传统的RAG方法并未针对这些短期、基于会话的数据访问场景进行优化。

企业在数据存储和管理上会产生费用,这可能使得RAG对于信息需求高度动态或短暂的组织来说成本效益较低,尤其是在数据仅需用于特定孤立任务或分析时。

轻松在单个文档上提问

这一新的在Amazon Bedrock知识库中与文档对话的能力解决了上述挑战。它提供了一种零设置的方法,以便利用单个文档进行内容检索和生成相关任务,结合Amazon Bedrock所提供的FM。通过这一新功能,您可以在无需设置量子数据库或导入数据的情况下,对数据进行提问,使使用企业数据变得毫不费力。

您现在可以实时与您的文档进行交互,而无需提前数据导入或数据库配置。在查询数据之前,您也不需要进行额外的数据准备。

这种零设置的方法使得使用Amazon Bedrock的生成AI,利用您的企业信息资产变得非常简单。

用例和好处

考虑一家招聘公司,需要分析简历,并根据候选人的经验和技能与合适的职位机会进行匹配。以前,您必须设置知识库,调用数据导入工作流程,以确保只有获得授权的招聘人员才能访问数据。此外,您还需要管理会话或候选人不再需要的数据清理。最终,您在向量数据库存储和管理上的开销通常超过了实际的FM使用成本。这一新功能使得招聘人员能够快速、短时间分析简历,并根据候选人的经验和技能与合适的职位机会进行匹配。

再举一个例子,考虑一家科技公司中的产品经理,需要快速分析客户反馈和支持票据,以识别常见问题和改进领域。借助这一新的功能,您只需上传一份文档即可快速提取洞察。例如,您可以询问:“移动应用的需求是什么?”或“客户提到的关于我们入职流程的常见痛点是什么?”这一功能使您能够快速综合信息,而无需繁琐的数据准备或任何管理开销。您还可以请求提要或关键要点,例如:“该需求文档的重点是什么?”

这一功能的好处不仅仅体现在节省成本和提高运营效率方面。通过消除对向量数据库和数据导入的需求,Amazon Bedrock知识库中的这一新能力帮助保护您的专有数据,仅在孤立的用户会话上下文中访问。

现在我们已经涵盖了这一功能的好处及其所带来的用例,让我们深入了解如何开始使用Amazon Bedrock知识库的这一新功能。

在Amazon Bedrock知识库中与文档对话

您可以通过多种方式开始使用此功能:

Amazon Bedrock控制台Amazon Bedrock RetrieveAndGenerate API (SDK)

让我们看看如何通过Amazon Bedrock控制台入门:

在Amazon Bedrock控制台的导航窗格中选择知识库。

选择与您的文档对话。

在模型下,选择选择模型。

选择您的模型。例如,对于本例,我们使用Claude 3 Sonnet模型目前仅支持Sonnet。

选择应用。

在数据下,您可以上传要对话的文档,或者指向包含您文件的Amazon简单存储服务Amazon S3存储桶位置。本篇文章中,我们将从计算机上传文档。

支持的文件格式包括PDF、MDMarkdown、TXT、DOCX、HTML、CSV、XLS和XLSX。确保文件大小不超过10 MB,并且不包含超过20000个token。token被视为文本单位,例如单词、子词、数字或作为单个实体处理的符号。由于预设的导入token限制,建议使用小于10MB的文件。然而,一份文本较多且远小于10MB的文件可能会潜在超出token限制。

您现在可以与您的文档进行对话。

在下图中,您可以实时与您的文档对话。

要自定义您的提示,请在系统提示下输入您的提示。

同样,您可以通过主要编程语言使用AWS SDK访问[retrieveandgenerate](https//docsawsamazoncom/bedrock/latest/APIReference/APIagentruntimeRetrieveAndGeneratehtml) API。在下面的示例中,我们使用AWS SDK for Python (Boto3):

pythonimport boto3

bedrockclient = boto3client(servicename=bedrockagentruntime)modelid = yourmodelidhere # 用您的模型ID替换documenturi = yours3urihere # 用您的S3 URI替换

def retrieveAndGenerate(inputtext sourceType modelid documents3uri=None data=None) region = uswest2 modelarn = farnawsbedrock{region}foundationmodel/{modelid}

if sourceType == S3    return bedrockclientretrieveandgenerate(        input={text inputtext}        retrieveAndGenerateConfiguration={            type EXTERNALSOURCES            externalSourcesConfiguration {                modelArn modelarn                sources [                    {                        sourceType sourceType                        s3Location {                            uri documents3uri                          }                    }                ]            }        }    )else    return bedrockclientretrieveandgenerate(        input={text inputtext}        retrieveAndGenerateConfiguration={            type EXTERNALSOURCES            externalSourcesConfiguration {                modelArn modelarn                sources [                    {                        sourceType sourceType                        byteContent {                            identifier testFiletxt                            contentType text/plain                            data data                          }                    }                ]            }        }    )

response = retrieveAndGenerate( inputtext=这份文档的主题是什么? sourceType=S3 modelid=modelid documents3uri=documenturi )

print(response[output][text])

结论

在本文中,我们讨论了Amazon Bedrock知识库如何简化对单个文档的提问。我们探讨了RAG的核心概念、这一新功能所解决的挑战,以及它在不同角色和行业内所启用的多种用例。我们还演示了如何通过Amazon Bedrock控制台和AWS SDK配置和使用此功能,展示了该功能的简便性和灵活性,它提供了一种零设置解决方案,以便从单个文档中收集信息,而无需设置向量数据库。

Amazon Bedrock 知识库现在简化了在单个文档上提问 机器学习博客

要进一步探索Amazon Bedrock知识库的能力,请参阅以下资源:

Amazon Bedrock知识库 使用Python、RAG和向量数据库入门Amazon Bedrock解密向量嵌入和RAG:利用Amazon Bedrock、Aurora和LangChain第1部分和第2部分

与我们的生成AI社区分享和学习:communityaws。

关于作者

Suman Debnath是亚马逊网络服务的机器学习首席开发者倡导者。他经常在全球的AI/ML会议、活动和聚会上发言。他热衷于大规模分布式系统,并且是Python的忠实粉丝。

Sebastian Munera是AWS Amazon Bedrock知识库团队的软件工程师,专注于构建利用生成AI和RAG应用的客户解决方案。他曾为客户构建基于生成AI的解决方案,以简化他们的流程,并参与低代码/无代码应用程序的开发。在空闲时间,他喜欢跑步、举重和探索技术。

订阅邮箱