由 John Doe 十一月 26, 2025
PostgreSQL 智能查询扩展(pg_ai_query)是一款功能强大的 PostgreSQL 扩展插件,它借助 OpenAI 和 Anthropic 提供的顶尖人工智能模型,能将自然语言描述转换为 SQL 查询语句。

什么是 pg_ai_query?
pg_ai_query 利用大语言模型(LLM)理解用户意图,并自动生成经过优化的 PostgreSQL 查询语句,从而打通了自然语言与 SQL 之间的壁垒。该扩展可直接集成到你的 PostgreSQL 数据库中,让你能够通过简单的英文描述,无缝查询数据库中的数据。
核心功能
- 自然语言转 SQL:将简单的英文描述转换为有效的 PostgreSQL 查询语句
- AI 驱动的查询分析:通过
EXPLAIN ANALYZE分析查询性能,并提供优化思路 - 自动模式发现:扩展会自动分析数据库模式(schema),理解表结构、表之间的关系及约束条件
- 支持多个 AI 提供商:兼容 OpenAI(GPT-4、GPT-3.5 模型)和 Anthropic(Claude 模型)
- 智能查询生成:生成包含合适
JOIN子句、WHERE子句和LIMIT约束的优化查询语句 - 性能优化:获取 AI 推荐的查询改进方案及索引创建建议
- 安全优先:内置防护机制,可防范危险操作及对系统表的未授权访问
- 高度可配置:灵活的配置系统,支持 API 密钥管理、模型选择和日志记录
- 支持原生 PostgreSQL:作为原生扩展直接在 PostgreSQL 内部运行
工作原理
- 模式分析:扩展自动发现并分析数据库模式(schema)
- 自然语言处理:AI 模型对用户输入的自然语言查询进行处理和意图理解
- SQL 生成:AI 根据数据库模式和用户需求,生成对应的 SQL 查询语句
- 查询验证:对生成的查询语句进行安全性和正确性验证
- 可执行状态:向用户返回可直接执行的 SQL 查询语句
使用示例
查询生成
-- 简单查询
SELECT generate_query('show me all users created in the last 7 days');
-- 查询过去 7 天内创建的所有用户
-- 使用自定义 API 密钥
SELECT generate_query('count orders by status', 'your-api-key-here');
-- 按订单状态统计订单数量(需替换为你的 API 密钥)
-- 指定 AI 提供商
SELECT generate_query('find top 10 customers by revenue', 'your-api-key', 'openai');
-- 查询收入排名前 10 的客户(需替换为你的 API 密钥,指定使用 OpenAI 模型)
查询性能分析
-- 分析查询性能
SELECT explain_query('SELECT * FROM users WHERE active = true');
-- 获取复杂查询的优化建议
SELECT explain_query('
SELECT u.username, COUNT(o.id) as orders
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
GROUP BY u.username
ORDER BY orders DESC
');
-- 结合查询生成与性能分析
WITH generated AS (
SELECT generate_query('find high-value recent orders') as query
)
SELECT explain_query((SELECT query FROM generated));
-- 先生成“查询近期高价值订单”的 SQL,再分析该查询的性能
支持的 AI 模型
OpenAI 模型
- GPT-4o:最新且功能最强的模型
- GPT-4:具备高质量推理能力和代码生成能力
- GPT-3.5 Turbo:速度快、效率高,适用于简单查询场景
Anthropic 模型
- Claude 3.5 Sonnet:具备高级推理能力和出色的自然语言理解能力
应用场景
- 数据探索:无需编写复杂 SQL,即可快速探索数据库中的数据
- 查询优化:借助 AI 分析慢查询,获取优化方案
- 性能监控:定期分析关键查询,防范性能退化问题
- 商业智能:通过自然语言描述生成报表及数据分析查询
- SQL 学习:了解自然语言如何转换为 SQL 语法,学习查询优化技巧
- 索引规划:获取 AI 推荐的数据库索引创建策略
- 快速原型开发:为测试和开发场景快速生成查询语句
- 文档编写:为数据库文档生成示例查询语句
架构组成
该扩展由以下几个核心组件构成:
- 查询生成器:处理自然语言并生成 SQL 的核心引擎
- 查询分析器:结合
EXPLAIN ANALYZE和 AI 分析的性能分析引擎 - 模式发现器:自动分析数据库结构及表之间关系的组件
- AI 提供商集成器:处理与 OpenAI、Anthropic API 通信的组件
- 配置管理器:管理设置、API 密钥及模型配置的组件
- 安全验证器:确保生成的查询语句安全且符合权限要求的组件
参考
pg_ai_query:https://github.com/benodiwal/pg_ai_query