使用Google Cloud SQL for PostgreSQL进行高效文档加载

35 阅读2分钟

引言

Google Cloud SQL for PostgreSQL是一种全托管的数据库服务,帮助开发者在Google Cloud Platform上轻松管理PostgreSQL数据库。在这篇文章中,我们将介绍如何使用Langchain集成来利用Cloud SQL for PostgreSQL加载文档。本文旨在为您提供实用的知识和清晰的代码示例,帮助您快速上手。

主要内容

前期准备

在开始之前,请确保您已完成以下准备工作:

  1. 创建一个Google Cloud项目。
  2. 启用Cloud SQL Admin API。
  3. 创建一个Cloud SQL for PostgreSQL实例和数据库。
  4. 为数据库添加用户。

安装Langchain集成库

使用以下命令安装langchain_google_cloud_sql_pg库:

%pip install --upgrade --quiet langchain_google_cloud_sql_pg

注意:如果您在Colab中运行此笔记本,请重启内核以访问新安装的包。

认证和设置项目

确保您已登录Google Cloud,并为项目设置正确的Project ID:

from google.colab import auth
auth.authenticate_user()

PROJECT_ID = "gcp_project_id"  # 设置项目ID
! gcloud config set project {PROJECT_ID}

设置Cloud SQL数据库值

根据您的实例和数据库信息设置以下变量:

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

创建PostgresEngine

PostgresEngine是用于配置连接池的对象。您可以使用以下方法创建:

from langchain_google_cloud_sql_pg import PostgresEngine

# 使用API代理服务提高访问稳定性
engine = await PostgresEngine.afrom_instance(
    project_id=PROJECT_ID,
    region=REGION,
    instance=INSTANCE,
    database=DATABASE,
)

创建PostgresLoader并加载文档

创建PostgresLoader以从表中加载文档:

from langchain_google_cloud_sql_pg import PostgresLoader

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

自定义表加载

您可以指定要作为内容和元数据的列:

loader = await PostgresLoader.create(
    engine,
    table_name=TABLE_NAME,
    content_columns=["product_name"],
    metadata_columns=["id"],
)
docs = await loader.aload()
print(docs)

设置页面内容格式

支持多种格式,例如YAML:

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

常见问题和解决方案

  1. 网络访问问题

    • 由于某些地区的网络限制,开发者可能需要考虑使用API代理服务以提高访问稳定性。
  2. 认证错误

    • 确保您已正确设置IAM用户权限,并使用了正确的Project ID。

总结和进一步学习资源

使用Google Cloud SQL for PostgreSQL加载文档简化了数据库管理过程,通过结合Langchain的功能还能构建更智能的应用。想了解更多,请查看以下资源:

参考资料

  • Google Cloud SQL for PostgreSQL文档
  • Langchain文档和GitHub页面

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

---END---