[利用Google Cloud SQL for PostgreSQL构建高效文档加载系统]

62 阅读2分钟

引言

在现代云计算时代,管理和扩展数据库服务变得越来越重要。Google Cloud SQL for PostgreSQL为开发者提供了一种全托管数据库服务,使得数据库的设置和管理变得更加简单。同时,通过Langchain的集成,您可以为数据库应用添加AI功能。本篇文章将深入探讨如何利用Google Cloud SQL for PostgreSQL和Langchain的PostgresLoader类来加载文档。

主要内容

1. 环境准备

在开始之前,请确认以下操作均已完成:

  • 创建一个Google Cloud项目。
  • 启用Cloud SQL Admin API。
  • 创建一个Cloud SQL for PostgreSQL实例。
  • 配置数据库和用户。

2. 安装必要的库

为了能够加载文档,需要安装Langchain的Google Cloud SQL PostgreSQL集成库。

%pip install --upgrade --quiet langchain_google_cloud_sql_pg

3. 认证和设置Google Cloud项目

我们需要通过Google的身份认证来访问我们的项目资源。在Google Colab中,使用以下命令进行认证:

from google.colab import auth
auth.authenticate_user()

设置Google Cloud项目ID:

PROJECT_ID = "your_project_id"
! gcloud config set project {PROJECT_ID}

4. 配置Cloud SQL数据库

确定您在Cloud SQL实例页面上的数据库参数:

REGION = "us-central1"
INSTANCE = "my-primary"
DATABASE = "my-database"
TABLE_NAME = "vector_store"

5. 使用PostgresEngine和PostgresLoader

建立PostgresEngine对象来配置与数据库的连接池:

from langchain_google_cloud_sql_pg import PostgresEngine

engine = await PostgresEngine.afrom_instance(
    project_id=PROJECT_ID,
    region=REGION,
    instance=INSTANCE,
    database=DATABASE,
)

创建PostgresLoader对象以加载文档:

from langchain_google_cloud_sql_pg import PostgresLoader

loader = await PostgresLoader.create(engine, table_name=TABLE_NAME)
docs = await loader.aload()
print(docs)

代码示例

以下是一个完整的代码示例,演示如何加载自定义表中的文档:

from langchain_google_cloud_sql_pg import PostgresLoader, PostgresEngine

# 使用API代理服务提高访问稳定性
engine = await PostgresEngine.afrom_instance(
    project_id="gcp_project_id",
    region="us-central1",
    instance="my-primary",
    database="my-database",
)

loader = await PostgresLoader.create(
    engine,
    table_name="products",
    content_columns=["product_name", "description"],
    format="YAML",
)

docs = await loader.aload()
print(docs)

常见问题和解决方案

  • 认证失败:请确保您已正确设置Google Cloud项目,并通过Google Colab或其他环境进行身份认证。
  • 网络访问问题:由于某些地区的网络限制,建议使用API代理服务来提高访问稳定性。

总结和进一步学习资源

通过本文学习,您应能够设置和使用Google Cloud SQL for PostgreSQL来加载文档。进一步阅读可以参考Langchain的文档加载概念指南如何指南

参考资料

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

---END---