学习笔记 · Obsidian

云原生向量库:Azure、Cloudflare、Google

LangChainTypeScriptCloudflare

结论

  • Azure 有两条不同数据模型:DocumentDB 的 MongoDB 兼容接口与 Cosmos DB for NoSQL 的 JSON/SQL 查询接口;旧 MongoDB vCore 名称已 deprecated,不应继续用于新代码。
  • Cloudflare Vectorize 适合 Workers 边缘运行;Google Cloud SQL PostgreSQL 适合把向量与关系数据放在托管 Postgres。运行时、过滤 DSL、身份和建表方式都不同。
  • 用户 filter 必须参数化。Cosmos NoSQL 文档给出了字符串拼接导致 delete-all 的明确注入案例。

Azure 改名与迁移

Azure Cosmos DB for MongoDB vCore 已由 Microsoft 重命名为 Azure DocumentDB。旧 AzureCosmosDBMongoDBVectorStore 等类只作为 deprecated alias 兼容;新项目应使用 AzureDocumentDBVectorStore,连接变量也迁移到 DocumentDB 命名。

迁移验证包括:索引名称/类型、连接串、字段路径、filter、upsert/delete、查询结果、驱动版本和监控维度。类名兼容不代表部署资源自动迁移。

Cosmos DB for NoSQL

AzureCosmosDBNoSQLVectorStore 将 vector 与 JSON 文档同存,支持:

  • 标准 vector search、score threshold、MMR;
  • full-text search/ranking(preview);
  • vector + full text 的 RRF hybrid(preview);
  • 按 ID、参数化 filter 或全量删除;
  • getContainer() 访问底层 Cosmos container。

Managed Identity + RBAC 模式下,身份不能创建 database/container,必须预先建好资源。任何用户条件都应使用 SqlQuerySpec 的 @param;禁止 WHERE ${userFilter}。权限/tenant 条件由服务端强制追加,删除默认拒绝空 filter。

Full-text 与 hybrid 仍为 preview,需要 container full-text policy 和索引;应设置 feature flag、回退到 vector search,并用真实工作负载验证 RRF 权重与费用。

Azure DocumentDB

DocumentDB 提供原生 MongoDB 兼容和 vector search。典型流程是加载/切分文档、fromDocuments() 建库、similarity search、转 Retriever,再关闭 store。连接串和 admin key 属于高敏凭据,生产优先使用细分数据库用户与受控网络。

Cloudflare Vectorize

Cloudflare Vectorize 通过 Wrangler 建 index,并在 wrangler.toml 绑定给 Worker;使用 @langchain/cloudflare,可与 Workers AI Embeddings 组合。

  • 文档当时标记 open beta 且需付费计划,能力/价格可能变化。
  • 本地调试需 wrangler dev --remote,表明真实向量操作依赖远端服务。
  • Worker 的绑定与常规 Node client 不同;要关注 CPU 时间、请求体和子请求额度。
  • metadata filter 格式遵循 Vectorize,部署前做 filter 字段和 schema 验证。

Google Cloud SQL PostgreSQL

PostgresEngine 建连接,先 initVectorstoreTable(table, dimension, args),再 PostgresVectorStore.initialize()。支持显式 ID、删除、score search、字符串 filter 和 MMR。

前置工作包括启用 API/计费、实例/数据库/用户和 Google 认证。文档示例使用字符串形式 filter;若条件来自用户,应用必须参数化或通过受控 builder 构造,不能拼接 SQL。

选型与运维

需求更自然的候选
Azure JSON 数据与原生 hybrid previewCosmos DB for NoSQL
MongoDB 兼容 Azure 服务Azure DocumentDB
Cloudflare Worker 边缘部署Vectorize
关系事务、SQL 与向量共存Cloud SQL PostgreSQL

统一监控写入可见延迟、RU/CPU、query latency、throttle、index size、filter selectivity 与成本;用 workload identity 和私网连接,避免长期 admin key。