Skip to main content
本指南将帮助你开始使用 AWS 知识库检索器 Amazon Bedrock 知识库是 Amazon Web Services(AWS)提供的服务,让你能够使用私有数据定制基础模型响应,从而快速构建 RAG 应用。 实施 RAG 需要组织执行几个繁琐的步骤:将数据转换为嵌入(向量)、将嵌入存储在专门的向量数据库中,以及构建自定义集成以搜索和检索与用户查询相关的文本。这可能既耗时又低效。 使用 Amazon Bedrock 知识库,只需指定你在 Amazon S3 中数据的位置,Amazon Bedrock 知识库就会处理整个摄取工作流程,将数据存入你的向量数据库。如果你没有现有的向量数据库,Amazon Bedrock 会为你创建一个 Amazon OpenSearch Serverless 向量存储。对于检索,使用 LangChain - Amazon Bedrock 集成通过 Retrieve API 从知识库中检索与用户查询相关的结果。

集成详情

设置

知识库可以通过 AWS 控制台或使用 AWS SDK进行配置。我们需要 knowledge_base_id 来实例化检索器。 如果你想要从各个查询中获取自动追踪,也可以通过取消以下注释来设置你的 LangSmith API 密钥:
os.environ["LANGSMITH_API_KEY"] = getpass.getpass("Enter your LangSmith API key: ")
os.environ["LANGSMITH_TRACING"] = "true"

安装

此检索器位于 langchain-aws 包中:
pip install -qU langchain-aws

实例化

现在我们可以实例化我们的检索器:
from langchain_aws.retrievers import AmazonKnowledgeBasesRetriever

retriever = AmazonKnowledgeBasesRetriever(
    knowledge_base_id="PUIJP4EQUA",
    retrieval_config={"vectorSearchConfiguration": {"numberOfResults": 4}},
)

使用方法

query = "What did the president say about Ketanji Brown?"

retriever.invoke(query)

在链中使用

from botocore.client import Config
from langchain_classic.chains import RetrievalQA
from langchain_aws import Bedrock

model_kwargs_claude = {"temperature": 0, "top_k": 10, "max_tokens_to_sample": 3000}

llm = Bedrock(model_id="anthropic.claude-v2", model_kwargs=model_kwargs_claude)

qa = RetrievalQA.from_chain_type(
    llm=llm, retriever=retriever, return_source_documents=True
)

qa(query)

API 参考

有关所有 AmazonKnowledgeBasesRetriever 功能和配置的详细文档,请参阅 API 参考