基岩(知识库)检索器
本指南将帮助您开始使用 AWS 知识库检索器。
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 集成,从知识库中检索用户查询的相关结果。
集成详细信息
| Retriever | 自托管 | 云产品 | 包 |
|---|---|---|---|
| AmazonKnowledgeBasesRetriever | ❌ | ✅ | langchain_aws |
设置
知识库可以通过 AWS 控制台或使用 AWS 开发工具包进行配置。我们将需要knowledge_base_id实例化 retriever。
如果您想从单个查询中获得自动跟踪,您还可以通过取消下面的注释来设置您的 LangSmith API 密钥:
# os.environ["LANGSMITH_API_KEY"] = getpass.getpass("Enter your LangSmith API key: ")
# os.environ["LANGSMITH_TRACING"] = "true"
安装
这只Retriever生活在langchain-aws包:
%pip install -qU langchain-aws
实例
现在我们可以实例化我们的 retriever:
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.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 参考:RetrievalQA
API 参考
有关所有AmazonKnowledgeBasesRetriever功能和配置可参考 API 参考。