大家好呀,我是小米,一個愛折騰也愛分享的大哥哥。

最近有個小夥伴跟我説:“小米,我現在的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 屬性:讓配置更一目瞭然

有時候開發同事問我:“小米,這些屬性都能配哪些值呀?”

我就喜歡這種問題!因為做筆記的我,早就幫你們整理好了:

這波AI太原生了!SpringAI讓PostgreSQL秒變智能數據庫!_PostgreSQL

看,這樣一目瞭然。

SpringAI就是這麼貼心,所有配置都可以通過YAML靈活調整。

運行時選項

有時候我們不想寫死配置,比如想在運行時動態選擇模型或修改參數。

這時我們可以使用 PostgresMlEmbeddingOptions。它允許在代碼層面靈活設置每次Embedding任務的執行參數。比如:

這波AI太原生了!SpringAI讓PostgreSQL秒變智能數據庫!_數據庫_02

然後調用:

這波AI太原生了!SpringAI讓PostgreSQL秒變智能數據庫!_數據庫_03

這段代碼的語氣就像在跟AI説悄悄話:“嘿,用e5-base模型來理解這句話吧~”

SpringAI幫我們封裝好了底層調用,開發者只需要關注邏輯,而不是通信細節。

這就是“Spring魔法”的魅力。

示例控制器:讓向量生成像寫REST接口一樣簡單

想讓AI在線生成向量?簡單!

我們寫一個控制器,幾行代碼搞定:

運行後你就能直接POST文本數據:

這波AI太原生了!SpringAI讓PostgreSQL秒變智能數據庫!_數據庫_04

返回結果大概是:

這串數字看似平平無奇,但它其實是AI對文本語義的“理解座標”。

有了它,你就能做相似度搜索、語義檢索、推薦系統等各種AI應用!

手動配置(高級玩法)

有時候我們希望完全掌控配置,比如需要動態切換數據庫或自定義連接池。

這時可以手動註冊 Bean:

這波AI太原生了!SpringAI讓PostgreSQL秒變智能數據庫!_YAML_05

註冊完成後,你可以像普通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歲程序員。如果你喜歡我的文章,歡迎關注我的微信公眾號“軟件求生”,獲取更多技術乾貨!