大家好呀,我是小米,一个爱折腾也爱分享的大哥哥。
最近有个小伙伴跟我说:"小米,我现在的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岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号"软件求生",获取更多技术干货!




