Bedrock (Knowledge Bases) Retriever
本指南将帮助您开始使用 AWS Knowledge Bases 检索器 (retriever)。
Knowledge Bases for Amazon Bedrock 是亚马逊网络服务 (Amazon Web Services, AWS) 提供的一项服务,它允许您通过使用您的私有数据自定义 FM 响应来快速构建 RAG 应用程序。
实施 RAG
需要组织执行几个繁琐的步骤,将数据转换为嵌入 (向量),将嵌入存储在专门的向量数据库中,并构建到数据库中的自定义集成,以搜索和检索与用户查询相关的文本。这可能既耗时又效率低下。
使用 Knowledge Bases for Amazon Bedrock
,只需指向您在 Amazon S3
中的数据位置,Knowledge Bases for Amazon Bedrock
就会处理将整个数据提取到您的向量数据库中的工作流程。如果您没有现有的向量数据库,Amazon Bedrock 会为您创建一个 Amazon OpenSearch Serverless 向量存储。对于检索,请通过 Retrieve API 使用 Langchain - Amazon Bedrock 集成,从知识库中检索与用户查询相关的结果。
集成详细信息 (Integration details)
检索器 (Retriever) | 自托管 (Self-host) | 云服务 (Cloud offering) | 包 (Package) |
---|---|---|---|
AmazonKnowledgeBasesRetriever | ❌ | ✅ | langchain_aws |
设置 (Setup)
知识库可以通过 AWS 控制台 (AWS Console) 或使用 AWS 开发工具包 (AWS SDKs) 进行配置。我们将需要 knowledge_base_id
来实例化检索器。
如果您想从单个查询中获取自动跟踪,您还可以通过取消注释下方内容来设置您的 LangSmith API 密钥。
# os.environ["LANGSMITH_API_KEY"] = getpass.getpass("Enter your LangSmith API key: ")
# os.environ["LANGSMITH_TRACING"] = "true"
安装 (Installation)
此检索器位于 langchain-aws
包中。
%pip install -qU langchain-aws
实例化 (Instantiation)
现在我们可以实例化我们的检索器了。
from langchain_aws.retrievers import AmazonKnowledgeBasesRetriever
retriever = AmazonKnowledgeBasesRetriever(
knowledge_base_id="PUIJP4EQUA",
retrieval_config={"vectorSearchConfiguration": {"numberOfResults": 4}},
)
用法 (Usage)
query = "What did the president say about Ketanji Brown?"
retriever.invoke(query)
在链中使用 (Use within a chain)
from botocore.client import Config
from langchain.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 参考 (API reference)
有关所有 AmazonKnowledgeBasesRetriever
功能和配置的详细文档,请访问 API 参考 (API reference)。