原文地址:https://hdombrovskaya.wordpress.com/wp-content/uploads/2026/02/new-postgres-ai-ecosystem.pdf

新的 PostgreSQL AI 生态系统

日期:2026年2月18日
作者:Shaun Thomas(pgEdge 首席软件工程师)


一、背景介绍

关于 pgEdge

  • 专注于分布式 PostgreSQL双活集群Postgres AI 工具云服务平台自动化超高可用性的企业

为什么 pgvector 不够用?

pgvector 为 Postgres 添加了向量能力,但存在以下不足:

  1. 数据加载问题:文档格式多样,需要统一处理
  2. 向量获取困难:需要将自然语言转换为向量
  3. 内容太大:长文档无法压缩为单个向量
  4. Postgres 不是 LLM:无法直接与用户交互
  5. 向量并非万能:LLM 交互需要更多能力

二、pgEdge AI 工具栈

1. pgedge-docloader - 文档加载器

功能:将各种格式文档转换并加载到 PostgreSQL

支持格式

  • HTML、Markdown、reStructuredText、XML、SGML

核心能力

  • 解析多种文档类型
  • 转换为 Markdown 格式
  • 提取文档元数据
  • 从 Git 拉取文档处理

安装使用

git clone https://github.com/pgEdge/pgedge-docloader.git
cd pgedge-docloader
make deps && make build && make install

2. pgedge-vectorizer - 向量化工具

功能:Postgres 扩展,将文本转换为嵌入向量

核心能力

  • 文本 → 嵌入向量
  • 内容分块处理
  • 处理队列 + 工作进程
  • 支持 OpenAI、Voyage AI、Ollama

配置示例(OpenAI):

shared_preload_libraries = 'pgedge_vectorizer'
pgedge_vectorizer.provider = 'openai'
pgedge_vectorizer.model = 'text-embedding-3-small'
pgedge_vectorizer.num_workers = 5

使用示例

-- 启用向量化处理
SELECT pgedge_vectorizer.enable_vectorization(
    source_table := 'blog_articles',
    source_column := 'content',
    chunk_strategy := 'markdown',
    chunk_size := 400,
    chunk_overlap := 50
);

3. pgedge-rag-server - RAG 服务

功能:Go 语言实现的 RAG 服务,实现检索增强生成

工作流程

  1. 监听 HTTP/HTTPS 请求
  2. 查询向量表获取语义匹配
  3. 将结果作为上下文发送给 LLM
  4. 返回 LLM 响应

配置示例

pipelines:
- name: "blog-rag"
  tables:
    - table: "blog_articles_content_chunks"
      text_column: "content"
      vector_column: "embedding"
  embedding_llm:
    provider: "ollama"
    model: "embeddinggemma"
  rag_llm:
    provider: "ollama"
    model: "glm-4.7-flash"
  top_n: 5

4. pgedge-postgres-mcp - 模型上下文协议服务

功能:Go 服务,通过 LLM 将用户查询转换为数据库操作

核心能力(测试版):

  • 监控 STDIO 或 HTTP/HTTPS 调用
  • LLM 将用户查询转为工具调用或 SQL
  • 执行数据库查询和工具调用
  • LLM 解释结果并返回

提供工具

  • count_rows:统计行数
  • execute_explain:执行 EXPLAIN ANALYZE
  • generate_embedding:文本 → 向量
  • get_schema_info:获取数据库结构
  • query_database:执行 SQL 查询
  • similarity_search:向量相似度搜索

三、完整流程示例

步骤1:准备数据表

CREATE TABLE blog_articles (
    id BIGINT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
    author TEXT,
    title TEXT,
    content TEXT,
    file_name TEXT,
    publish_date DATE,
    last_updated TIMESTAMPTZ NOT NULL DEFAULT now()
);

步骤2:加载文档

pgedge-docloader \
  --source ./content \
  --db-host localhost \
  --db-table blog_articles \
  --col-doc-title title \
  --col-doc-content content \
  --set-column author="Shaun Thomas"

步骤3:向量化处理

SELECT pgedge_vectorizer.enable_vectorization(
    source_table := 'blog_articles',
    source_column := 'content'
);

步骤4:RAG 查询

curl -X POST http://localhost:8080/v1/pipelines/blog-rag \
  -H "Content-Type: application/json" \
  -d '{"query": "What is the best database engine?"}'

返回结果

{
    "answer": "根据提供的上下文,关于'最佳'数据库引擎有两种观点:\n\n* **Postgres**:多个文档指出**Postgres**是目前最好的RDBMS引擎。\n* **取决于场景**:有文档指出,'最佳'取决于具体需求。",
    "tokens_used": 1506
}

高级查询(带元数据过滤)

curl -X POST http://localhost:8080/v1/pipelines/blog-rag \
  -H "Content-Type: application/json" \
  -d '{
    "query": "What is the best database engine?",
    "filter": {
        "conditions": [
            {"column": "author", "operator": "=", "value": "Shaun Thomas"},
            {"column": "publish_date", "operator": ">", "value": "2020-01-01"}
        ],
        "logic": "AND"
    }
}'

四、生态系统价值

pgEdge 构建的这套工具链实现了:

  • 完整的数据处理流程:从文档加载 → 向量化 → RAG 查询 → LLM 交互
  • 模块化设计:各工具可独立使用
  • 灵活配置:支持多种 LLM 提供商
  • 易于扩展:基于 PostgreSQL 生态

这套工具栈让 PostgreSQL 能够原生支持 AI 应用开发,无需复杂的外部集成。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐