这波AI太原生了!SpringAI让PostgreSQL秒变智能数据库!



大家好呀,我是小米,一个爱折腾也爱分享的大哥哥。

最近有个小伙伴跟我说:"小米,我现在的AI项目需要用到向量检索,但我的数据全在PostgreSQL里,难道我还得搭个外部Embedding服务吗?"

我笑了笑,抿了口咖啡,轻轻地说:"不一定哦~你听过 PostgresML 向量模型 吗?它能让你的数据库直接变成一个AI模型仓库!"

于是,我给他讲了一个故事------

关于SpringAI 与 PostgresML 的浪漫合作,一场数据库和AI的完美融合。

当数据库学会"思考":什么是 PostgresML 向量模型?

在我们平常的开发世界里,PostgreSQL 只是个"老实人":存数据、查数据、加个索引、跑点SQL。

可 PostgresML 却让它摇身一变------成为一个内嵌机器学习模型的数据库

你可以直接在PostgreSQL里执行机器学习操作,比如训练模型、生成Embedding向量、甚至推理!

SpringAI 则是这场魔法的"桥梁",它让你像使用普通Spring Bean一样,轻松地调用AI模型。

而"PostgresML 向量模型"就是 SpringAI 提供的一种嵌入(Embedding)模型实现,它直接利用 PostgresML 的强大算力,将文本数据转换成向量并存储在数据库中。

这意味着------你不需要额外部署OpenAI、Ollama、或者HuggingFace服务,就能在Spring中调用AI向量功能!

一句话总结就是:

PostgresML 向量模型 = 数据库存储 + 向量生成 + AI原生化 + 零外部依赖

是不是很香?

添加存储库和 BOM:让SpringAI接入PostgresML

故事的第二幕,就是"相遇"。

为了让SpringAI与PostgresML成功牵手,我们需要引入依赖。在你的 pom.xml 中,添加以下配置:

BOM负责统一版本管理,Starter则让我们开箱即用,无需繁琐配置。

这也是Spring Boot的浪漫------少写代码,多点魔法

自动配置:让AI自己动起来

添加依赖后,Spring Boot 会根据 application.yml 自动配置好向量模型。示例配置如下:

Spring Boot 会自动帮我们生成一个 PostgresMlEmbeddingModel Bean。

只要应用启动成功,你的数据库就已经变身为一个能生成Embedding的AI模型仓库啦!

这时候,你几乎什么都不用干,SpringAI会自动帮你注入 EmbeddingModel 对象,你只需要调用 embed() 方法即可。

Embedding 属性:让配置更一目了然

有时候开发同事问我:"小米,这些属性都能配哪些值呀?"

我就喜欢这种问题!因为做笔记的我,早就帮你们整理好了:

看,这样一目了然。

SpringAI就是这么贴心,所有配置都可以通过YAML灵活调整。

运行时选项

有时候我们不想写死配置,比如想在运行时动态选择模型或修改参数。

这时我们可以使用 PostgresMlEmbeddingOptions。它允许在代码层面灵活设置每次Embedding任务的执行参数。比如:

然后调用:

这段代码的语气就像在跟AI说悄悄话:"嘿,用e5-base模型来理解这句话吧~"

SpringAI帮我们封装好了底层调用,开发者只需要关注逻辑,而不是通信细节。

这就是"Spring魔法"的魅力。

示例控制器:让向量生成像写REST接口一样简单

想让AI在线生成向量?简单!

我们写一个控制器,几行代码搞定:

运行后你就能直接POST文本数据:

返回结果大概是:

这串数字看似平平无奇,但它其实是AI对文本语义的"理解坐标"。

有了它,你就能做相似度搜索、语义检索、推荐系统等各种AI应用!

手动配置(高级玩法)

有时候我们希望完全掌控配置,比如需要动态切换数据库或自定义连接池。

这时可以手动注册 Bean:

注册完成后,你可以像普通Spring Bean一样注入使用。

这种方式适合对性能、安全性或动态配置要求较高的场景,比如多租户系统或私有化部署。

写在最后:AI与数据库的融合未来

以前我们总觉得:

AI是AI,数据库是数据库。一个做推理,一个存数据,泾渭分明。

但SpringAI和PostgresML告诉我们------

未来,AI不再是"外部服务",而是数据系统的原生能力。 我们不需要再去搭一个复杂的LLM推理服务;我们只需要在熟悉的Spring和PostgreSQL里,就能实现语义检索、智能推荐、甚至知识问答。

这不只是技术的整合,更是"思维模式的进化"。

总结一下今天的重点:

PostgresML 向量模型: 让PostgreSQL直接支持Embedding生成。

添加存储库和BOM: 轻松集成SpringAI。

自动配置: YAML配置后开箱即用。

Embedding属性表格: 清晰明了。

PostgresMlEmbeddingOptions: 灵活的运行时参数设置。

示例控制器: 简单几行实现AI接口。

手动配置: 进阶玩法,完全掌控。

END

所以,如果你也想让你的数据库"聪明"起来,不妨试试PostgresML和SpringAI吧~下一次,你的SQL也许就能和AI一起思考啦!

最后,小米有个小问题想问大家:

如果你能让数据库拥有一种"AI能力",你希望它最先学会什么?

欢迎在评论区聊聊~

我是小米,一个喜欢分享技术的31岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号"软件求生",获取更多技术干货!

相关推荐
爱勇宝42 分钟前
深扒 Anthropic 1680 位工程师简历:应届生几乎没机会,AI 公司最缺的不是博士
前端·后端·程序员
AskHarries1 小时前
工具失败时怎么办:重试、回滚、人工确认和风险提示
后端·程序员
苏三说技术3 小时前
Claude Code从失控到起飞,只用了这些技巧
后端
长栎3 小时前
写 for 循环写了十年,你却从没用过迭代器模式最狠的那一面
后端
LiaCode4 小时前
Redis 在生产项目的使用
前端·后端
用户559822481224 小时前
Docker Compose Down 导致容器数据误删——ext4 日志恢复全记录
后端
LiaCode4 小时前
一天学完 redis 的爽翻版核心知识总结
前端·后端
大刚测试开发实战4 小时前
如何内网穿透访问本地私有化部署的TestHub
前端·后端·github
xiaodaoluanzha4 小时前
迄今為止,最簡單的編程語言 Nolang
前端·后端
Csvn4 小时前
Docker 容器管理入门 — 从镜像到容器编排
后端