Skip to main content
Azure Database for PostgreSQL - Flexible Server 是基于开源PostgreSQL数据库引擎构建的关系型数据库服务。它是一个完全受管理的数据库即服务(DBaaS),能够以可预测的性能、安全性和高可用性处理关键业务负载,并支持动态扩展。 本指南展示如何利用集成向量数据库存储文档到集合、创建索引并执行基于余弦距离、欧氏距离(L2)和内积(IP)等近似最近邻算法的向量搜索查询,从而定位与查询向量相近的文档。

向量支持

Azure Database for PostgreSQL - Flexible Server 支持高效存储和查询数百万量级的向量嵌入。同时可从概念验证(POC)扩展至生产环境:
  • 提供熟悉的SQL接口查询向量嵌入和关系型数据
  • 通过DiskANN索引算法提升pgvector性能,支持在百万级向量(100M+)上实现更快速且更精确的相似性搜索
  • 通过单一数据库整合关系元数据、向量嵌入和时间序列数据
  • 依托强大的PostgreSQL生态和Azure云服务,实现企业级功能(包括复制和高可用性)

认证

Azure Database for PostgreSQL - Flexible Server 支持基于密码和Microsoft Entra(原Azure Active Directory)的认证。 Entra认证允许使用Entra身份验证PostgreSQL服务器。这消除了单独管理数据库用户名和密码的需求,并复用Azure其他服务使用的安全机制。 本指南支持两种认证方式。您可在笔记本中后期配置是否使用Entra认证。

配置

Azure Database for PostgreSQL基于开源PostgreSQL。本集成使用专用langchain-azure-postgresql软件包,提供DiskANN索引和Microsoft Entra认证优化支持。 首先下载合作伙伴软件包:

启用pgvector

参考Azure Database for PostgreSQL的启用说明。

设置凭据

需要Azure Database for PostgreSQL的连接详情,并将其作为环境变量运行本笔记本。 将USE_ENTRA_AUTH标志设置为True以使用Microsoft Entra认证。若使用Entra认证,仅需提供主机和数据库名;若使用密码认证,还需设置用户名和密码。

配置AzureOpenAIEmbeddings

初始化

使用Microsoft Entra认证

以下章节演示如何使用LangChain实现Microsoft Entra认证。LangChain Azure Postgres包中的AzurePGConnectionPool类通过DefaultAzureCredential库从 azure.identity 获取Azure数据库服务令牌。 可将连接配置传入LangChain向量存储的connection参数 AzurePGVectorStore 中。

登录 Azure

要登录 Azure,请确保已安装 Azure CLI。您需要在终端中运行以下命令:
登录成功后,以下代码将能够获取令牌。

密码身份验证

如果未使用 Microsoft Entra 认证,可通过 BasicAuth 类使用用户名和密码:

创建向量存储

配置向量存储参数

在初始化 AzurePGVectorStore 时,可覆盖元数据类型、嵌入维度、索引类型等默认参数。这允许您根据具体用例和数据需求定制向量存储。 关键配置选项:
  • metadata_column_type:元数据列类型(默认: 'jsonb')。可设置为 'jsonb'、'text' 等。
  • embedding_column_type:嵌入列类型(默认: 'vector')。
  • embedding_dimension:嵌入向量维度(默认: 1536)。
  • embedding_index_type:向量检索索引类型(默认: 'DiskANN')。其他选项包括 'ivfflat'、'hnsw' 等。
  • embedding_index_opclass:索引算子类(默认: 'vector_cosine_ops')。
示例:

初始化 DiskANN 向量索引以实现更高效的向量检索

DiskANN 是一种可扩展的近似最近邻搜索算法,适用于任何规模的向量检索。它能实现高召回率、高查询吞吐量、低查询延迟,甚至适用于十亿级数据集。这些特性使其成为处理大规模数据的有力工具。

管理向量存储

添加项目

注意:通过文档 ID 添加文档会覆盖同名现有文档。

更新项目

检索项目

删除项目

查询向量存储

在创建向量存储并添加相关文档后,您可在链或智能体中查询向量存储。

过滤

向量存储支持通过 FilterCondition、OrFilter 和 AndFilter(位于 LangChain Azure PostgreSQL 包中)对文档元数据字段应用过滤:

直接查询

执行简单的相似度搜索可按如下方式:
若需使用 AND 逻辑过滤器,示例如下:
若需执行相似度搜索并获取对应分数,可运行:

将向量存储转换为检索器

可将向量存储转换为 AzurePGVectorStore 检索器,便于在链中更便捷使用。
若需使用最大边际相关性搜索:
要查看 AzurePGVectorStore 向量存储支持的所有搜索类型,请参考 文档。

检索增强生成使用指南

关于如何使用此向量存储实现检索增强生成(RAG),请参考以下章节:

API参考

要查看所有 AzurePGVectorStore 功能和配置的详细文档,请访问 API参考:https://github.com/langchain-ai/langchain-azure/tree/main/libs/azure-postgresql/src/langchain_azure_postgresql/langchain
官方原文:src/oss/python/integrations/vectorstores/azure_db_for_postgresql.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。
Last modified on November 3, 2026