
pgai
在 PostgreSQL 里直接跑 AI,省掉向量数据库和复杂管道
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 5794
技术标签
使用教程
环境要求
- 一个可用的 PostgreSQL 数据库(支持 Timescale Cloud、Amazon RDS、Supabase 等)
- 一个 OpenAI API Key(快速上手示例使用 OpenAI 生成嵌入,也支持多种模型提供商)
- 已安装 Python 与 pip
- 若数据库不在 Timescale Cloud 上,需要运行 pgai vectorizer worker
安装与启动步骤
-
1安装 pgai 包
在 Python 环境中安装 pgai 主包,这是使用 pgai 全部能力的前提。建议先创建并激活虚拟环境。
pip install pgai -
2安装数据库组件
pgai 需要在数据库中安装若干目录表与函数,pgai.install 会把它们装到 ai schema 下。把 DB_URL 换成你的真实数据库连接串。
python -c "import pgai; pgai.install('postgres://postgres:password@localhost:5432/postgres')" -
3安装 worker 依赖
如果数据库不在 Timescale Cloud 上,还需要运行 vectorizer worker,需额外安装它的依赖。
pip install "pgai[vectorizer-worker]" -
4安装语义目录依赖
仅当你使用 Semantic Catalog(自然语言转 SQL)功能时才需要执行这一步。不使用可跳过。
pip install "pgai[semantic-catalog]" -
5配置 .env 文件
在运行示例的同一个目录下创建 .env,填入 OpenAI 密钥和数据库地址,切勿把该文件提交到公开仓库。
OPENAI_API_KEY=<your-openai-api-key> DB_URL=<your-database-url> -
6创建向量化器
先在数据库里建 wiki 表,再调用 ai.create_vectorizer 声明式定义嵌入管道;它会自动为已有数据生成嵌入,并在数据变化时保持同步。
CREATE TABLE IF NOT EXISTS wiki ( id INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY, url TEXT NOT NULL, title TEXT NOT NULL, text TEXT NOT NULL ); SELECT ai.create_vectorizer( 'wiki'::regclass, loading => ai.loading_column(column_name=>'text'), destination => ai.destination_table(target_table=>'wiki_embedding_storage'), embedding => ai.embedding_openai(model=>'text-embedding-ada-002', dimensions=>'1536') ) -
7运行快速上手示例
下载官方 quickstart 的 main.py 与依赖清单,建虚拟环境装依赖后运行;也可以在代码里以 Worker(DB_URL, once=True) 手动跑一次 worker。
curl -O https://raw.githubusercontent.com/timescale/pgai/main/examples/quickstart/main.py curl -O https://raw.githubusercontent.com/timescale/pgai/main/examples/quickstart/requirements.txt python -m venv venv source venv/bin/activate pip install -r requirements.txt python main.py
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
OPENAI_API_KEY | 是 | 调用 OpenAI 生成向量嵌入的密钥,示例中使用该提供商 | sk-xxxxxxxxxxxxxxxxxxxxxxxx |
DB_URL | 是 | PostgreSQL 数据库连接串,用于安装组件与读写数据 | postgres://postgres:password@localhost:5432/postgres |
如何确认成功
运行 python main.py 后能在终端看到 "Search results"(含 url、title、chunk、distance 字段)以及 "RAG response" 输出,即表示部署与检索链路正常。
常见问题
Q:这个项目还在维护吗?
A:README 明确说明:自 2026 年 2 月起该项目不再维护或提供支持,新项目请评估后再选用。
Q:必须使用 Timescale Cloud 吗?
A:不必。pgai 可用于任何 PostgreSQL 数据库,包括 Timescale Cloud、Amazon RDS、Supabase 等;只是非 Timescale Cloud 需自行运行 vectorizer worker。
Q:只能使用 OpenAI 吗?
A:不是。快速上手示例用 OpenAI 做嵌入,但 pgai 支持多种嵌入模型提供商,可通过 embedding 参数切换。
Q:pgai.install 会把组件装到哪里?
A:会安装到数据库的 ai schema 中,包含 pgai 所需的目录表与函数。
Q:为什么向量化后还要跑 worker?
A:向量化器负责声明管道,worker 负责实际批处理生成并同步嵌入,非 Timescale Cloud 环境需要自行运行。
注意事项
- 该项目自 2026 年 2 月起已停止维护,不建议用于长期生产项目。
- OPENAI_API_KEY 与 DB_URL 属于敏感信息,不要写入代码或提交到版本库。
- 向量化器类似“声明式索引”:你只需定义管道,嵌入的生成与同步由 pgai 负责。
- 命令中出现的连接串、密钥、路径均为示例,请替换为你自己的真实值。
核心亮点
- 原生集成 PostgreSQL,无需额外部署向量数据库,降低架构复杂度
- 支持通过 SQL 直接调用主流嵌入和 LLM API,开发门槛低
- 利用 PostgreSQL 成熟的事务、索引和权限机制,数据一致性有保障
不足之处
- 依赖 PostgreSQL 扩展,对版本和部署环境有特定要求
- 大规模向量检索性能可能不如专用向量数据库
适用场景
- 在现有 PostgreSQL 应用上快速增加语义搜索功能
- 构建企业内部知识库问答系统,实现 RAG 流程
- 需要事务性保障的 AI 数据管道,如推荐系统实时特征存储
替代项目
pgvector、Milvus、Weaviate
上一篇:postgresml
下一篇:helix-db
同类项目推荐
lucid-memory
开源
本地秒级记忆,让 AI 更懂你,零成本零延迟
Memory for AI that works like yours—local, instant, persistent. 13x faster than Pin···
dstoolkit-mlops-base
开源
用 Azure 一键搭建模型上线流水线,省去手工部署烦恼
Support ML teams to accelerate their model deployment to production leveraging Azure
data-science-best-practices
开源
把数据科学项目从原型打磨成生产级系统
The goal of this repository is to enable data scientists and ML engineers to develop···
envd
开源
一条命令搞定可复现开发环境,人和 AI 都能用
️ Reproducible development environment for humans and agents
postgresml
开源
在 PostgreSQL 里直接跑机器学习,用 SQL 搞定 AI 应用
Postgres with GPUs for ML/AI apps.
project-maya
开源
本地跑 321B MoE 大模型,单卡到 16 卡,兼容 OpenAI 接口
Run GLM-5.3-Flash (321B), DeepSeek-V4.1-Flash (748B) and MiniMax-M3.1-Flash (428B) o···
EverOS
开源
给每个 AI 代理装一个随身记忆库,跨应用不忘事
One portable memory layer for every AI agent: local-first, Markdown-native, user-own···
ESEILANE
开源
为 AI 和 LLM 打造的高性能知识图谱引擎,让 GraphRAG 更快更聪明。
High-performance Knowledge Graph engine for AI, LLMs, and GraphRAG — built for the ···
helix-db
开源
用对象存储构建图+向量数据库,低成本搞定复杂关联与语义搜索
HelixDB is an OLTP graph database with native vector and full-text search built in R···