news 2026/10/19 14:29:31

PostgreSQL AI生态实战:从向量检索到机器学习扩展

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PostgreSQL AI生态实战:从向量检索到机器学习扩展

看到这个标题,我第一反应是:终于有人正儿八经地把 PostgreSQL 和 AI 生态放在一起聊了。这些年数据库圈子和 AI 圈子的交集越来越多,但能把两者讲透、讲清楚、讲出实操价值的文章少之又少。正好我自己最近也在折腾这块,借着这个题目,把我知道的、实测过的、踩过坑的和盘托出,希望能帮你省点时间,少走点弯路。

先说个基本判断:PostgreSQL 在 AI 生态里的地位,不像很多人想的那么简单,也不像有些人吹的那么玄乎。它本质上是一个极其稳重的老牌关系型数据库,但因为扩展机制足够灵活,在过去几年里被硬生生改造成了一个能跑向量检索、能调大模型接口、能托管机器学习管道的“全能选手”。而且这个趋势不是某个大厂推动的,是社区一点一点长出来的,这一点特别值得玩味。

这篇文章我会从几个角度展开:PostgreSQL 是怎么一步步变成 AI 生态基座的,当前最核心的几个 AI 相关扩展到底解决了什么问题,它们之间的选型逻辑是什么,以及我在实际项目中踩过的那些坑。如果你正在做 RAG、语义搜索、AI Agent 的后端存储设计,或者单纯想搞清楚“为什么大家都在说用 PostgreSQL 做 AI 应用”,这篇文章应该能给你一个比较完整的参考。

1. 一次由 AI 驱动的生态全景梳理

先聊一个有意思的现象:现在很多开发者开始拿 AI 工具来帮自己做技术选型和生态调研。我也这么干过,而且实测下来,这个思路比传统搜索引擎高效得多。让 AI 去总结“PostgreSQL AI 生态系统”,听起来是个很偷懒的做法,但实际操作过就会发现,这其实是个很聪明的切入点。

AI 最擅长的事情之一,就是信息检索加结构化整理。你给它一个足够宽泛的主题,它能从海量文档、博客、代码仓库里抽出主线,给你一个骨架。但这里有个前提:AI 给的结论不一定对,尤其是涉及技术方向判断的时候,它可能会把一些过时的信息、或者错误的信息混进去。所以说,AI 总结的价值在于“启发”,不在于“权威”。你得让它帮你打开思路,然后自己去验证。

我当时让某 AI 工具总结“PostgreSQL AI 生态系统”时,它给出的信息框架大致是这样的:向量检索扩展、内嵌型机器学习、大模型调用中间件、数据管道集成。四条线,基本涵盖了当前 PostgreSQL 在 AI 领域的所有主流玩法。但每条线具体该选谁、怎么用、有什么坑,它就讲得比较泛了。这一部分我后面会展开来写。

1.1 为什么 Postgres 会成为 AI 应用的数据基座

很多刚接触的人会问一个问题:AI 应用的数据存储,为什么不用专门的向量数据库?这个问题其实问到了点子上。向量数据库在纯向量检索上确实有优势,但真实世界的 AI 应用从来不只是向量检索。

举个例子,一个典型的 RAG(检索增强生成)应用,它需要存文档原文、需要存用户反馈、需要存对话记录、需要维护用户权限关系。这些数据如果分开放在两个系统里,你得自己处理一致性、处理事务、处理跨系统查询。而 PostgreSQL 的杀手锏恰恰在这里:它能在一个系统里把结构化数据、非结构化文本、向量数据全部管起来,而且支持事务、支持 ACID、支持 SQL 查询。你的业务逻辑可以用一套工具链写完,不用在多个系统之间来回同步数据。

另一方面,PostgreSQL 的扩展能力是真的能打。从生态角度看,它就像手机里的 Android 系统——基础能力扎实,更重要的是开放,允许任何人在上面加装各种模块。AI 生态里的 pgvector、pgml、pgai 这些扩展,本质上都是在 PostgreSQL 这个“骨架”上生长的“器官”。

1.2 AI 总结的方法论与可信度边界

用 AI 做生态调研时,我的做法是分层验证。第一层:让 AI 给出宏观方向和各路方案的角色定位;第二层:拿这些结论去 GitHub、官方文档、社区论坛里验证是否存在、是否活跃、是否闻人;第三层:在自己机器上跑一遍最小 Demo,验证基本流程是否和 AI 描述的一致。

这套流程看起来简单,但能帮你省下大量时间。我见过太多人拿着 AI 给的过时信息去搭项目,结果折腾半个月发现那个库早就停止维护了。记住一个原则:AI 总结是给你一张藏宝图,但每个标记点都需要你亲自踩一遍确认。尤其是开源项目的 star 数量、最近一次提交时间、维护活跃度这些信息,必须实时去代码仓库确认,AI 的训练数据是有时间截断的。

2. 地基设施:PostgreSQL 的扩展机制与 AI 相关核心架构

要理解 PostgreSQL 为什么能承载这么多 AI 功能,得先理解它从设计之初就坚持的扩展哲学。PostgreSQL 的架构里有一个很核心的概念叫“扩展(Extension)”,它不是简单的插件,而是能深入到解析器、优化器、执行器各个层面的深度集成机制。

这种设计带来了两个关键结果:第一,第三方开发者可以给 PostgreSQL 增加全新的数据类型、索引方法、操作符、函数,而不需要改动内核;第二,这些扩展的性能表现接近原生实现,因为它们不是通过外部桥接调用,而是直接在数据库内部运行。

2.1 扩展机制的工作原理

PostgreSQL 的扩展机制基于 SQL 标准里的 CREATE EXTENSION 命令。当你执行这个命令时,数据库会读取扩展的元数据文件,然后加载对应的动态链接库到数据库进程里。这意味着扩展代码和数据库内核运行在同一个进程空间,没有 IPC 开销,没有网络延迟,数据不需要序列化再反序列化。

举个例子,pgvector 增加了一个叫做 vector 的数据类型。这个类型在数据库内部就是一个定长浮点数组,它和 int、text 这些内置类型同样是一等公民。你可以给这个类型的列建索引、参与 WHERE 条件过滤、在 SELECT 列表里输出。这种“原生感”是其他任何中间件方案都做不到的。

打个比方,很多所谓的“数据库 + AI”方案就像在汽车后备箱里放一台发电机,虽然也能供电,但走线麻烦,效率也低。而 PostgreSQL 的扩展机制是在汽车出厂时就在发动机舱里预留了发电机接口,插上去就能完美协同工作。

2.2 AI 相关扩展的全景图谱

当前 PostgreSQL 的 AI 生态扩展,按功能定位可以分成四类:

第一类是向量检索方向,最典型的是 pgvector 和 pgvectorscale。它们解决的核心问题是“如何在 PostgreSQL 里存储 embedding 向量并做高效的相似度检索”。

第二类是机器学习内嵌方向,典型代表是 pgml(PostgreSQL Machine Learning)。它的思路是把数据预处理、模型训练、推理打分全部搬到数据库内部,让 SQL 脚本直接完成机器学习任务。

第三类是大模型调用中间件方向,比如 pgai(PostgreSQL AI)。它的思路是在 PostgreSQL 内部直接调用外部大模型 API,把 prompt 构建、API 请求、结果解析都封装成 SQL 函数。

第四类是数据管道集成方向,像 pgvector 的批量导入工具、各种 connector、还有 DBOS 这样的工作流编排系统。它们解决的是“怎么把数据规整地送进 PostgreSQL,再把处理结果送给下游”的问题。

这四个方向不是互斥的,实际项目里经常会叠加使用。比如一个生产级 RAG 系统,可能会同时用 pgvector 存向量、用 pgai 调大模型生成 embedding、用标准 PostgreSQL 能力存业务数据。

2.3 不同扩展方案的适用边界

我梳理了一个简单的对比表,方便你根据自己的需求快速定位该用哪个方向:

需求场景推荐方向核心优势注意事项
纯向量检索 + 业务数据同库管理pgvector事务一致性、SQL 查询、成熟稳定高并发场景需要配合 HNSW 索引优化
超大规模向量集的高性能检索pgvectorscale基于磁盘的索引、流式聚类需要额外安装,与 pgvector 兼容
在库里直接跑机器学习管道pgml预处理、训练、推理一站式对数据库内存压力较大
在库里直接调大模型 APIpgaiprompt 模板化、批量处理依赖外部网络与 API 配额
已有 业务系统快速接入 AI 能力PostgreSQL + 外部 AI 服务中间件侵入性低、改造成本小多一跳网络,延迟稍高

3. 核心战场:向量检索扩展的选型与实战

向量检索是整个 PostgreSQL AI 生态里最热门的方向,没有之一。原因很简单:无论是做 RAG、做语义搜索、做推荐系统、做去重聚类,第一步都是把数据转换成向量,然后按相似度来找“最相关的那些”。

3.1 pgvector 的安装与基础使用

pgvector 的安装是我见过最顺利的 PostgreSQL 扩展之一。如果你用的是编译安装的 PostgreSQL,基本就是三步走:下载源码、编译、CREATE EXTENSION。

以某常见版本为例,Linux 下的操作大概是这样的:

git clone --branch v0.7.0 https://github.com/pgvector/pgvector.git cd pgvector make make install

然后在 psql 里执行:

CREATE EXTENSION vector;

就这么简单。之后你就可以创建一个带向量列的表:

CREATE TABLE documents ( id BIGSERIAL PRIMARY KEY, content TEXT, embedding vector(1536) );

这个vector(1536)表示这是一个 1536 维的浮点向量,维数通常取决于你使用的 embedding 模型。为什么是 1536?因为这正好是某主流 embedding 模型的输出维度。如果嵌入模型换成其他常见方案,可能就得用 384 维或者 1024 维。

3.2 索引选择:IVFFlat 与 HNSW 的取舍

pgvector 支持两种索引类型,IVFFlat 和 HNSW,我的建议是:数据量大且对查询性能要求高的场景,优先选 HNSW。

IVFFlat 的基本原理是“先粗筛再精排”。它把向量空间按聚类分成若干列表,查询时先定位到最近的几个列表,再在这些列表里暴力搜索。这个方案参数调优很重要,lists 参数直接决定了召回率和查询速度的平衡。我见过不少人一上来就用默认参数,结果召回率一塌糊涂。

HNSW 的基本原理是“多层级图搜索”。它构建了一个分层的近邻图,高层图粗粒度导航,底层图精确定位。这个方案的核心优势是查询性能和召回率都比较稳健,不需要像 IVFFlat 那样精心调参。缺点是在插入数据时维护图结构需要额外的内存和计算开销。

我的实践经验是:如果你的数据量在百万级以下,用 HNSW 就好;如果数据量特别大,而且主要场景是离线批量建索引、不太需要实时插入,可以考虑 IVFFlat。

创建 HNSW 索引的示例:

CREATE INDEX ON documents USING hnsw (embedding vector_cosine_ops);

这里vector_cosine_ops指定了用余弦相似度作为距离度量。如果你用的是欧氏距离,就换成vector_l2_ops;内积用vector_ip_ops。注意,索引的操作符类必须和查询时使用的距离函数保持一致,否则索引不会生效。

3.3 相似度查询的 SQL 写法

pgvector 提供了三种距离运算符:<->是欧氏距离,<=>是余弦距离,<#>是内积。实际使用中,最常用的是余弦距离,因为它在语义相似度场景里效果稳定,不受向量长度影响。

一个典型的 top-K 查询长这样:

SELECT id, content, 1 - (embedding <=> $1) AS similarity FROM documents ORDER BY embedding <=> $1 LIMIT 10;

这里$1是你传入的查询向量。1 - 余弦距离可以把“距离”转换成“相似度”——距离越小相似度越高,减完之后数值越大越好。

还有个细节:如果查询里加了WHERE条件对业务字段做过滤,会让索引失效的风险增加。比如“在某个用户的所有文档里做相似度搜索”,这时候如果直接用向量索引,数据库很难做到“先过滤再搜索”。一个常见优化是使用 HNSW 索引的“迭代扫描”特性,或者退而求其次,先按业务条件确定候选集,再在候选集里排序。这个优化空间很大,但也很容易成为性能瓶颈,我在后面“常见问题”部分会专门展开。

3.4 pgvectorscale 的高级特性

如果你觉得 pgvector 在高并发场景下不够快,可以试试 pgvectorscale。它是某云厂商开源的扩展,完全兼容 pgvector 的数据类型和操作符,但在索引层做了大量优化。

它最大的卖点是 StreamingDiskANN 索引。传统 HNSW 索引需要把所有向量加载到内存里才能高效工作,而 StreamingDiskANN 把索引放在磁盘上,内存只需要保存一部分热点数据,这大大降低了对服务器内存的要求。

另外它还引入了一个叫“分层聚类”的机制,在构建索引时会根据数据分布自动分层,这对使用数据库的准入门槛比较友好,因为不用手动去调 lists 参数。

但天下没有免费的午餐。pgvectorscale 的安装过程比 pgvector 复杂,它依赖 Rust 工具链,升级维护成本也更高。如果你的项目只是中小规模,pgvector 完全够用,没必要强行上 pgvectorscale。

4. 从向量检索到 AI 能力内嵌:扩展周边的演进趋势

向量检索只是解决了“存和查”的问题。真实的 AI 应用还需要调用大模型生成向量、生成回答、做数据预处理,于是出现了一类新的扩展:把 AI 能力直接内嵌到数据库操作里。

4.1 pgai:在数据库里直接调用大模型

pgai 这个扩展的野心很大:它想把大模型调用变成数据库里的一个基础操作。你用 SQL 就能生成 embedding、用 SQL 就能让大模型帮你分类文本、用 SQL 就能做情绪分析。

比如,如果你想给一张表里的文本生成 embedding 向量,pgai 的用法大致是:

SELECT ai.embed('某嵌入模型', '这是一个测试文本');

这行命令会调用模型接口返回向量,然后你可以把它存到向量列里。如果你的文本数据量很大,还能配合INSERT INTO ... SELECT做批量生成,把整个表的文本字段一次性转成向量列。

pgai 最大的价值在于:它省掉了你自己写脚本调 API、处理重试、管理并发的那一套繁琐流程,把这些脏活累活都统一收敛到数据库内部。对于数据工程师来说,这意味着 ETL 流程可以保持在 SQL 层面,不需要引入额外的 Python 服务。

4.2 pgml:把机器学习管道搬进数据库

pgml 的思路比 pgai 更底层。它不依赖外部大模型 API,而是把训练和推理过程都放在数据库进程内。它集成了某著名的开源机器学习库,支持分类、回归、聚类这些经典任务。

pgml 的一个核心设计是“模型即数据库对象”。你训练一个模型,它就像一个表或者视图一样存在于数据库里。之后做预测,直接 SQL 调用就行:

SELECT pgml.predict('my_model', ARRAY[3.2, 4.5, 1.1]);

这种设计的好处是:模型和数据在同一个地方,不需要导出、不需要部署服务、不需要处理数据格式转换。对于那些数据敏感性高、不能把数据传到外部服务的场景,pgml 是特别合适的方案。

但实测下来,pgml 对数据库服务器的内存和 CPU 要求很高,尤其是训练阶段,可能会把数据库实例的资源占满。我的建议是:训练和小规模推理可以用 pgml,但生产环境大规模并发推理还是建议把模型部署在独立的推理服务里,数据库只负责存数据和做最终的业务逻辑。

4.3 生态的横向整合趋势

观察这两年的趋势,我看到一个很明显的变化:单点扩展开始走向“全家桶”。早期大家用 pgvector 只是解决向量检索这一个问题,现在越来越多的方案把“数据导入”、“文本分块”、“向量生成”、“相似度检索”、“结果返回”串成一条完整的链路。

有些云厂商直接提供了“一站式 AI 数据库”的产品形态,比如某平台的 pgvector 服务不仅支持向量存储,还内置了 embedding 生成函数、集成了大模型问答接口。这种趋势的背后逻辑是:开发者不想花时间在组装各种组件上,他们想要一个开箱即用的、能直接支撑业务逻辑的方案。

但这个趋势也有代价:组件越多,依赖越复杂,排错越难。我见过一个项目,用了 pgai 调外部模型,结果模型服务偶尔超时,导致整批数据处理任务失败,排查了半天才发现是并发配额用完了,而不是 SQL 写错了。这种跨组件的故障,理解成本比传统关系型数据库高了很多。

5. 实操记录:搭一套完整的 PostgreSQL AI 应用

说了这么多理论,还是拿一个实际案例来演示整个过程吧。我前段时间搭建了一个论文检索系统,需求很简单:上传 PDF 论文,系统自动提取正文、切分成段落、生成 embedding、存入 PostgreSQL,然后支持文本相似度搜索和语义问答。

这个项目的技术栈是:PostgreSQL 16 + pgvector 0.7 + Python FastAPI 后端 + 某开源 embedding 模型。下面直接看我当时的关键操作。

5.1 数据库与扩展环境准备

为了保证环境一致性,我是在某容器环境里先启动 PostgreSQL 实例的:

docker run -d \ --name postgres-ai-demo \ -e POSTGRES_USER=testuser \ -e POSTGRES_PASSWORD=testpass \ -e POSTGRES_DB=aidb \ -p 5432:5432 \ postgres:16

然后进入容器安装 pgvector:

docker exec -it postgres-ai-demo bash apt-get update && apt-get install -y postgresql-16-pgvector

启动 PostgreSQL 并连接,创建扩展:

psql -U testuser -d aidb
CREATE EXTENSION IF NOT EXISTS vector; CREATE EXTENSION IF NOT EXISTS pg_trgm;

为什么还要装 pg_trgm?因为除了向量检索,我还想支持按关键词的模糊搜索。pg_trgm 提供三元组索引,对“包含某个词”的文本匹配非常高效,和向量语义搜索互补——向量找“意思相近的”,trgm 找“字面包含的”。

5.2 表结构设计与索引创建

论文按“段落”为粒度存储:

CREATE TABLE paper_segments ( id BIGSERIAL PRIMARY KEY, paper_title TEXT NOT NULL, segment_index INT NOT NULL, segment_text TEXT NOT NULL, embedding vector(768) ); CREATE INDEX ON paper_segments USING hnsw (embedding vector_cosine_ops); CREATE INDEX ON paper_segments USING GIN (to_tsvector('english', segment_text));

这里我用了 768 维的向量,因为嵌入模型输出维度是 768。注意一个易错点:如果嵌入模型后期更换,维度变了,表结构得重建。所以生产环境设计时,最好在一张单独的表里记录“版本”、“模型名”、“维度”这些元信息,方便以后迁移。

5.3 完整的数据处理管道

段落切分和 embedding 生成用 Python 实现。核心逻辑我贴一下:

def process_paper(file_path, title): # 1. 抽取文本 text = extract_text_from_pdf(file_path) # 2. 按段落分块,每块约800字符,重叠100字符 segments = split_text(text, chunk_size=800, overlap=100) # 3. 生成 embedding 并写入 PostgreSQL for idx, seg in enumerate(segments): emb = embedding_model.encode(seg) cur.execute( "INSERT INTO paper_segments (paper_title, segment_index, segment_text, embedding) VALUES (%s, %s, %s, %s)", (title, idx, seg, emb) ) conn.commit()

这里有个关键细节:分块时的 overlap 参数不能省。它能让相邻块之间保持上下文连续性,防止一个问题正好被块边界切断导致检索不到。800 字符加 100 字符重叠是我试过比较合适的平衡点,块太长语义不聚焦,块太短会丢失上下文信息。

5.4 检索接口的 SQL 实现

相似度检索的核心 SQL 如下:

SELECT paper_title, segment_index, segment_text, 1 - (embedding <=> $1) AS similarity FROM paper_segments ORDER BY embedding <=> $1 LIMIT 5;

如果需要混合检索(关键词 + 向量),可以用一个稍微复杂点的查询:

SELECT paper_title, segment_index, segment_text, (0.6 * (1 - (embedding <=> $1)) + 0.4 * ts_rank_cd(to_tsvector('english', segment_text), plainto_tsquery('english', $2))) AS score FROM paper_segments WHERE to_tsvector('english', segment_text) @@ plainto_tsquery('english', $2) OR embedding <=> $1 < 0.8 ORDER BY score DESC LIMIT 5;

这个混合检索的策略是:关键词命中给 40% 权重,语义相似度给 60% 权重,两者都命中的结果会排在前面。权重比例可以根据业务场景调整。如果你做的是学术搜索,关键词权重可以高一点;如果你做的是客服问答,语义权重应该更高。

5.5 实测性能与调优记录

我的数据集是 2000 篇论文,切分后大约 12 万个段落向量。在单机 8 核 16G 内存环境下,HNSW 索引构建耗时约 3 分钟。检索性能方面,单次查询平均延迟 15ms 到 30ms,作为参考,这个成绩完全不输于同规模的专用向量数据库。

内存占用方面,HNSW 索引加载到内存大约占 1.5G,对 16G 的实例还算友好。如果你的数据集更大、内存更紧张,可以考虑加大hnsw.ef_search参数来平衡召回率与查询速度——这个参数越大,搜索的候选范围越大,召回率越高,但延迟也越高。

6. 常见问题与排查技巧实录

这部分全是实战积累,建议直接收藏。

6.1 索引没生效,查询慢得像乌龟爬

这是新手最容易踩的坑。如果你发现用了向量索引反而更慢,第一步先确认索引真的被用上了:

EXPLAIN ANALYZE SELECT * FROM paper_segments ORDER BY embedding <=> $1 LIMIT 5;

如果执行计划里出现Index Scan using ...,说明索引起作用了;如果出现的是Seq Scan,说明查询没用索引。常见的“罪魁祸首”是查询里的距离函数与索引定义的操作符类不一致,或者查询条件里加了导致优化器放弃索引的过滤条件。

解决方法是把过滤操作放在子查询或者 CTE 里,先取 top-K 候选,再对候选做精确过滤。

6.2 HNSW 索引构建慢或失败

HNSW 索引构建需要大量内存,如果内存不足,构建进程可能直接被系统杀掉。你在日志里会看到 Out of Memory 相关的报错。应对策略有两条:要么临时调大内存限制,要么换成 IVFFlat 索引。

还有一个很多人不知道的点:在大量插入数据之后再建索引,比先建索引再插入数据要快很多。原因是 HNSW 构建时如果数据已经有序排列在磁盘上,可以更好地利用顺序 IO 和批量操作。

6.3 环境不一致导致的扩展版本混乱

PostgreSQL 的扩展和内核版本是强绑定的。你在一台机器上编译安装的扩展,到另一台机器上不一定能用,常见报错是“could not load library ... version mismatch”。推荐做法是:把扩展名加到 PostgreSQL 的扩展清单里,然后用包管理器安装,例如某系统可以用 apt 直接安装对应版本的postgresql-16-pgvector,避免自己手动编译折腾。

6.4 pgai 调用外部模型时的超时与限流

pgai 这类扩展依赖外部 API,网络抖动或者配额耗尽都会导致 SQL 调用失败。我的经验是:不用在 SQL 层面处理重试,而是在数据管道层做控制。比如先批量生成 embedding 再入库,而不是逐条 INSERT 时即时调用模型接口,这样就算中途失败,也能断点重跑,不会污染已有数据。

6.5 向量维度过大导致表膨胀

有些嵌入模型输出 3072 维甚至更高维度的向量,一条向量就占好几 KB 存储。如果你的数据量达到百万级别,光向量列就得上 GB。这时候有几个优化手段:一是用二分量化压缩存储,二是只对需要的子集建立索引,三是拆表存储低频向量。不过这些方案都比较进阶,一般中小项目用不上,先知道有这条路就行。

7. 一些个人心得与踩坑记录

最后分享几个我这段时间折腾下来的体会。

第一点,PostgreSQL AI 生态的核心优势不是性能,而是“数据关系”。向量数据库再快,它也只是给你一个向量检索能力。真实业务里,用户、订单、内容、标签这些数据之间的复杂关系,才是业务逻辑的核心。PostgreSQL 能在同一个事务里处理好“关系逻辑”和“向量逻辑”,这种统一性带来的开发效率提升,往往比那几毫秒的查询延迟更重要。

第二点,别过早优化。我见过很多项目一上来就纠结“应该用 pgvector 还是专用向量数据库”,其实数据量没到百万级,pgvector 完全够用。真到了瓶颈期,再考虑迁移或者引入 pgvectorscale 也不迟。数据库选型和架构设计一样,过早优化是大忌。

第三点,AI 工具做技术调研真的很好使,但一定要验证。合适的用法是,先让 AI 帮你搭好框架、列出候选方案,然后你自己去看源码、跑 Demo、测性能。这个过程下来,你对生态的理解会比单纯看文档深得多,而且还能顺手发现一些 AI 总结里没提到的冷门但好用的工具。

第四点,如果你准备在生产环境使用这套生态,建议从最小的闭环开始:先搭一个最简单的“存向量、查相似”的应用跑通,再逐步叠加 pgai、pgml、混合检索这些高级能力。一步到位往往会陷入“组件太多、排错太难”的窘境,反而拖慢进度。

PostgreSQL 的 AI 生态还在快速演进,文档、工具链、最佳实践都在持续刷新。今天写的内容,基于我目前实际验证过的经验整理,大概率过段时间会有新的变化。但底层的思路,比如“哪种问题用什么方案”“如何设计数据模型”“如何验证 AI 给的结论”,这些是不会过时的。你现在完全可以照着这篇文章里的框架,自己动手搭一套环境实测看看,很多感觉光看文字是体会不到的。只有把数据装进去、把索引建起来、把查询跑起来,你才能真正理解这个生态的设计逻辑和真实能力边界。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/19 14:28:19

深入Linux echo命令:参数、转义、颜色与日志函数实战

做了这么多年Linux运维和脚本开发&#xff0c;我可以直接说&#xff1a;echo命令是我日常敲得最频繁的工具之一&#xff0c;没有它&#xff0c;我写的脚本几乎没法正常跟人“说话”。一个调试信息、一条进度提示、一段日志记录&#xff0c;本质上都是靠echo把字符串送出来。但你…

作者头像 李华
网站建设 2026/10/19 14:25:09

无线AP故障排查全指南:从物理链路到配置优化的十种实战方法

干了十多年网络运维&#xff0c;最怕听到的其实不是哪个系统崩了&#xff0c;而是同事站在过道里喊“无线AP是不是又挂了”。无线接入点&#xff08;AP&#xff09;这东西没有显示器没有控制台&#xff0c;出了故障往往就是用户觉得慢、觉得卡、连不上&#xff0c;可你跑到设备…

作者头像 李华
网站建设 2026/10/19 14:24:23

智能体开发实战:从核心原理到工程落地全解析

"哇塞&#xff01;智能体来了&#xff0c;智创未来欢乐冒险起航"——这个标题看着确实有点中二&#xff0c;但你要是真把它当一句玩笑话&#xff0c;那就亏大了。我最近连着做了几个智能体&#xff08;AI Agent&#xff09;相关的模拟项目&#xff0c;最直观的感受是…

作者头像 李华
网站建设 2026/10/19 14:23:34

Natas 0-5通关全记录:从源码审计到Cookie篡改的Web安全入门

如果你已经玩过一阵子OverTheWire的Bandit&#xff0c;一定会记得那种“在命令行里摸黑前进”的刺激感&#xff1b;而一旦切到Natas&#xff0c;画风立刻变成浏览器、HTML源码、HTTP请求头这些Web层面的东西。Natas是OverTheWire系列里专门练Web服务端安全的关卡&#xff0c;前…

作者头像 李华
网站建设 2026/10/19 14:23:18

鸿蒙双翼:编码与安全如何助力中小企业智能化落地

1. 智能化的现实困境与鸿蒙带来的破局机会做中小企业数字化服务的这些年&#xff0c;我越来越明显感觉到一个矛盾&#xff1a;一边是老板们天天喊着要转型、要降本增效&#xff0c;另一边是技术团队抱怨需求太散、设备太杂、系统太难打通。仓库的扫码枪、门店的平板、办公室的P…

作者头像 李华
网站建设 2026/10/19 14:23:18

Spark+HBase+Logstash:地铁客流分析系统设计与实现

简介&#xff1a;一套面向计算机专业毕业设计的基于Spark的地铁大数据客流分析系统项目资料&#xff0c;依托Apache Spark实现客流统计、预测与优化&#xff0c;覆盖数据采集、清洗、存储、分析和可视化全链路&#xff0c;适用于需要完成大数据类课题的学生及Spark入门开发者。…

作者头像 李华