本指南将帮助您开始使用 AWS 知识库 检索器.
Amazon Bedrock 知识库 是 Amazon Web Services (AWS) 的一项服务,可让您使用私有数据快速构建 RAG 应用程序来自定义 FM 响应。
实现 RAG 需要组织执行多个繁琐的步骤来将数据转换为嵌入(向量)、将嵌入存储在专门的向量数据库中,以及构建自定义集成以搜索和检索与用户查询相关的文本。这可能既耗时又低效。
使用 Knowledge Bases for Amazon Bedrock,只需将数据位置指向 Amazon S3,以及 Knowledge Bases for Amazon Bedrock 会处理整个向量数据库的摄取工作流。如果您没有现有的向量数据库,Amazon Bedrock 会为您创建一个 Amazon OpenSearch 无服务器向量存储。对于检索,请通过 Retrieve API 使用 LangChain - Amazon Bedrock 集成从知识库中检索与用户查询相关的结果。
集成详情
设置
知识库可以通过以下方式配置 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 package:
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 参考.