pg_llm

pg_llm 架构设计(v1.1)

1. 总览

pg_llm 是一个 PostgreSQL 扩展,通过 SQL 原生函数提供大模型能力。扩展将会话、审计、追踪、报告、知识库等数据持久化到 _pg_llm_catalog,并在 PostgreSQL backend 内完成模型调用与编排。

设计目标:

2. 核心组件

2.1 SQL 接口层(src/pg_llm.cpp

职责:

2.2 模型层(src/models/*

2.3 Text2SQL 层(src/text2sql/*

2.4 支撑层(src/utils/*

3. Catalog 持久化模型

扩展数据统一存于 _pg_llm_catalog

4. API 形态

4.1 兼容文本接口

这些接口保留,内部复用结构化执行路径。

4.2 结构化接口

4.3 流式接口

统一返回字段:seq_nochunkis_finalmodel_nameconfidence_scorerequest_id

5. 关键执行流程

5.1 聊天 / 多轮聊天

  1. 解析并加载模型实例。
  2. 按需拼接 RAG 上下文(options.enable_rag)。
  3. 调用阻塞或流式模型接口。
  4. 执行置信度阈值判断与兜底模型切换。
  5. 多轮模式下写入会话消息。
  6. 记录审计与追踪。

5.2 并行聊天路由

  1. 并行调用候选模型。
  2. 选择最高置信度结果。
  3. 计算有效阈值(模型配置/GUC/options)。
  4. 低于阈值时走 fallback 模型。
  5. 持久化候选分数与决策信息。

5.3 Text2SQL

  1. 组装 schema 上下文。
  2. 可选向量检索与相似样例召回。
  3. 生成 SQL。
  4. 执行 SQL 并返回结构化结果。
  5. 执行 EXPLAIN 并返回计划。
  6. 记录 trace/audit。

5.4 报告生成

  1. 执行 SQL 并获取结果与执行计划。
  2. 让模型生成叙述性总结。
  3. 生成包含建议和 Vega-Lite 规范的 JSON。
  4. 报告持久化。

5.5 知识库与反馈

6. 安全与可观测

6.1 核心 GUC

6.2 密钥安全

6.3 可观测

7. 构建与发布