大家好,我是小米。
今天我一定要和你們分享一個我最近“玩到停不下來”的東西:
Google Vertex AI 的多模態向量模型(Multimodal Embedding)整合進 SpringAI。
你有沒有這種感覺:
明明我們已經用文本向量模型玩得飛起,做語義搜索、做相似度匹配、做推薦算法……結果這時候突然有人告訴你:
“兄弟,別隻盯着文本了,世界是多模態的,圖像、文本、音頻、視頻都能一起理解!”
這不就像你剛學會炒酸菜魚,突然有人告訴你還能一鍋端火鍋、烤肉、炒粉絲一樣震撼嗎?
於是,我開始探索 Google 的多模態嵌入模型 Vertex AI Multimodal Embeddings,再配合 SpringAI 的自帶自動配置……
簡直不要太爽。今天我們就一起來把它徹底講明白!
Vertex AI 多模態嵌入 API 是個啥?
如果你用過 OpenAI 的 CLIP、Google 的 PaLM Embedding、或 Cohere 的 multimodal 模型,那你已經對“多模態 Embedding”不陌生了。
但 Google 的 Vertex AI Multimodal Embeddings 最大的特點是:
一個模型,同時支持文本 + 圖像輸入,生成統一向量空間 Embedding
也就是説:
- 你可以讓模型把圖片轉成 embedding
- 也可以把文本轉成 embedding
- 甚至可以讓它把文本和圖像一起輸入,生成帶語義理解的混合向量
比如:
- 給模型一張貓的圖片,讓它輸出 1408 維向量
- 然後給它一句話 “一隻窩在沙發上的橘貓”,也會輸出 1408 維向量
- 你還能用向量相似度判斷圖片和文本是不是描述同一個東西(比如在圖像搜索、內容檢索中超常用)
這就是 統一模態向量空間(UNIFIED space) 的魅力。而 SpringAI 已經把它封裝得非常絲滑,只需要幾行配置即可調用。
先決條件(Prerequisites)
要順利使用 SpringAI + Vertex AI,你至少需要準備這些:
1. 一個 Google Cloud 項目
必須提前啓用 Vertex AI API。
2. 在 Google Cloud 上創建服務賬號
並下載 JSON 密鑰文件。
3. 給這個服務賬號綁定至少以下權限
- Vertex AI User
- Storage Object Viewer(如果你要從 GCS 讀取圖片)
4. 你的 Spring Boot 項目版本
建議:
- Spring Boot >= 3.2
- SpringAI >= 1.0+
因為 SpringAI 從 1.0 起就內置了 Vertex AI 支持。
5. 配置 GOOGLE_APPLICATION_CREDENTIALS
例如:
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/service-account.json
這些準備好後,下面就可以開幹了!
添加存儲庫和 BOM
在你的 pom.xml 中添加 SpringAI 的 BOM 和依賴:
加上這些,你就可以在 Spring 中用 VertexAiEmbeddingModel 和 VertexAiMultimodalEmbeddingModel。
自動配置(Auto Configuration)
SpringAI 的精髓就在於 —— 自動配置!
當你把下面這些 application.yml 配好:
然後只要寫:
它就能直接拿來用了!
- 不用你創建 client
- 不用你寫 Builder
- 不用你寫工廠方法
- 不用你管理 token
- 不用你處理 endpoint
是不是超級爽?
Embedding 屬性
SpringAI 對 Vertex AI 的 Embedding 相關屬性做了一層非常貼心的封裝,我們來看看有哪些配置可調。
1. vertex.ai.embedding 屬性
這些是專門給“文本 embedding(Text Embedding)”用的。
2. vertex.ai.embedding.multimodal 屬性
多模態版的配置更豐富:
配好這些,SpringAI 就會自動給你注入一個:
VertexAiMultimodalEmbeddingModel
這個模型能一次性處理文本和圖像!
手動配置(VertexAiMultimodalEmbeddingModel)
有時候你想完全控制模型,比如調整 Client、配置超時、修改 endpoint,那麼就需要手動創建 Bean。
下面給你一個典型示例:
你只需要注入就能用了:
然後直接生成 embedding:
是不是非常絲滑?
寫在最後:多模態未來已來
為什麼我這麼興奮地分享 Vertex AI 的多模態向量模型?因為這意味着:
- 圖像搜索可以變得更聰明
- 內容審核更準確
- 以圖搜文、以文搜圖變得簡單
- 推薦系統可以跨文本和圖像理解用户喜好
- 私有化部署也可以使用多模態能力
- 和 Spring 配合之後真的開發效率爆表
以前我們做向量搜索還只能靠文本,現在我們終於可以擁抱:
“讓模型理解世界的更多維度”
作為一個喜歡折騰的程序員,我覺得未來的系統不會只處理文本,一定會是:
- 文本
- 圖像
- 視頻
- 語音
- 結構化數據
而 SpringAI 把這種能力做得夠優雅、夠順滑、夠 Java,讓人完全不想回頭用原生 SDK。
END
如果你是想在公司裏構建私有向量庫、圖像檢索系統、AI 搜索引擎、多模態知識庫……
強烈建議馬上試試 Vertex AI Multimodal Embedding + SpringAI。
我是小米,一個喜歡分享技術的31歲程序員。如果你喜歡我的文章,歡迎關注我的微信公眾號“軟件求生”,獲取更多技術乾貨!