Bedrock (知識庫) 檢索器
本指南將協助您開始使用 AWS 知識庫檢索器。
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 整合,從知識庫中檢索使用者查詢的相關結果。
整合詳細資訊
檢索器 | 自行託管 | 雲端服務 | 套件 |
---|---|---|---|
AmazonKnowledgeBasesRetriever | ❌ | ✅ | langchain_aws |
設定
知識庫可以透過 AWS Console 或使用 AWS SDKs 進行設定。我們將需要 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.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 參考資料。