大家好吖,我是你們 31 歲、還在持續折騰技術的小米。最近幾天我沉迷了一件事——用 Spring AI + Azure OpenAI 做圖像生成,越玩越停不下來。
你有沒有這種感覺:
當年我們還在研究“怎麼優化圖片加載速度”,結果現在直接一句 prompt,AI 就幫你把圖畫好。不僅會畫,還會理解你的意圖,甚至能幫你畫得更好。
而且!Spring AI 真的太絲滑了,尤其是配合 Azure OpenAI 的圖像能力(比如 DALL·E 3)——簡直像你寫一個配置,Spring 就幫你自動把“畫圖工具”接好。
這篇文章就帶你從零開始,把 Azure OpenAI 圖像模型接入 Spring Boot,跑通你的第一張 AI 圖像生成!
坐穩啦,故事開始~
為什麼我開始折騰 Azure OpenAI 圖像模型?
前段時間,我有個朋友在做一個“智能家居裝修靈感助手”,需要給用户實時生成不同風格的客廳、廚房樣例。當時他問我有沒有簡單點的 Java 接入方案。
我想了想:
- OpenAI 官方 SDK?也可以,但 Java 生態一般般。
- Azure OpenAI?企業級穩定性更好,也可以。
那整合方式呢?然後我突然想起 Spring AI。
我一試,哎喲我的天,簡直 Java 程序員福音:
- 自動化配置
- 提供 ImageClient
- 能直接轉模型響應
- 還能擴展模型參數
所以我就搞了一個 Demo,沒想到越搞越爽,最後還生成了我家貓咪的“巴洛克風神像版本”,今天就把全過程分享給你。
Azure OpenAI 圖像模型簡介:Java 黨也能一行 prompt 出圖
Azure OpenAI 的圖像模型本體其實就是 OpenAI 的 DALL·E 系列,只是換成了 Azure 託管,可以綁定你的 Azure 密鑰、計費方式、私有虛擬網絡等能力。
可生成內容包括:
而 Spring AI 提供了一個很絲滑的封裝——ImageClient。
你甚至可以直接這樣調用:
imageClient.generate("畫一個衝浪的橘貓");
它就會給你一張高質量圖片。是不是感覺很爽?別急,我們繼續裝環境。
添加依賴:只需要一個 starter
如果你用的是 Maven,加入:
如果你是 Gradle:
implementation 'org.springframework.ai:spring-ai-azure-openai'
Spring AI 的理念非常一致:你加上 Starter,其他的它幫你自動裝配好。
配置 Azure OpenAI 憑證:只需三行就能跑圖像模型
在 application.yml 中加上:
最關鍵的是這兩項:
Spring 看到這些配置後,就會自動創建一個 AzureOpenAiImageClient 給你使用。
小米第一次配置成功時,甚至還有點激動——Java 終於能輕鬆玩圖像生成了!
AzureOpenAiImageOptions 可配置項
Spring AI 對 Azure 圖像生成參數做了一層封裝,就是 AzureOpenAiImageOptions。
我給你整理了一張清晰的表格:
關鍵點説明:
- size 越大,越清晰,計費也越高
- high 質量會增加費用
- 生成多張圖 n>1 的時候要小心錢包
- b64_json 適合你要把圖片存數據庫或 OSS 時使用
這一層封裝比直接調用 Azure API 清爽太多了。
調用 ImageClient:寫出你的第一張 AI 圖片
核心代碼非常簡單。
1. 注入 ImageClient
Spring 會自動選擇 AzureOpenAiImageClient。
2. 發起文生圖請求
最簡版(小米最常用):
進階版(帶可選參數):
3. 拿到結果
點開就是生成的圖像!我第一次看到自己的 prompt 變成圖像時,真的有點震撼。科技的進步,比我頭髮掉得還快。
Java 玩圖像生成,很舒服了
如果你是 Java 後端工程師,可能以前覺得“生成圖片”“這些都是前端或 Python 的活”。但 Spring AI + Azure OpenAI 出來之後,這個局面真的變了。
你可以:
- 給你的業務系統加入自動生成插畫
- 給用户生成定製頭像(比如“賽博朋克風的我”)
- 生成裝修圖、產品海報、廣告樣機
- 甚至為內部系統生成自動 PPT 封面圖
- 結合聊天模型做 Prompt 迭代,生成更精準圖片
而所有這些,只要你寫過 Spring Boot,就能立刻上手。
結語:別錯過 Spring AI 這波紅利
如果你之前沒接觸過 AI 模型,你可能會覺得“AI 開發好麻煩”。但 Spring AI 的出現,把這一切變成了簡單的“寫配置 + 調方法”。
Java 的 AI 生態正在從“沒人做”邁向“誰都能用”,而 Azure OpenAI 的企業級穩定性,更是讓它可以放心上正式環境。
我現在已經給我們團隊內部搞了好幾個 Demo:
- 自動生成文章封面
- 幫產品經理生成界面草圖
- 讓後台系統根據日誌生成圖形化解釋圖
每個都被誇到飛起。
END
我是小米,一個喜歡分享技術的31歲程序員。如果你喜歡我的文章,歡迎關注我的微信公眾號“軟件求生”,獲取更多技術乾貨!