这波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岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号"软件求生",获取更多技术干货!

相关推荐
观望过往3 小时前
Spring Boot 集成 EMQ X 4.0 完整技术指南
java·spring boot·后端·emqx
心之语歌3 小时前
对于 时间复杂度和空间复杂度分析
后端
青旬3 小时前
AI编程祛魅-最近几个失败的ai编程经历
后端·程序员
莹Innsane3 小时前
记一次 float64 排序失效的灵异事件
后端
Python私教3 小时前
使用 SQLAlchemy 操作单表:以 SQLite 用户表为例的完整实战指南
后端
Python私教3 小时前
使用 SQLAlchemy 连接数据库:从基础到最佳实践
后端
码起来呗5 小时前
基于Spring Boot的乡村拼车小程序的设计与实现-项目分享
spring boot·后端·小程序
我命由我123455 小时前
Java 并发编程 - Delay(Delayed 概述、Delayed 实现、Delayed 使用、Delay 缓存实现、Delayed 延迟获取数据实现)
java·开发语言·后端·缓存·java-ee·intellij-idea·intellij idea