Azure OpenAI 影像生成
Spring AI 支援 DALL-E,Azure OpenAI 的影像生成模型。
先決條件
從 Azure Portal 上的 Azure OpenAI 服務區段取得您的 Azure OpenAI endpoint
和 api-key
。Spring AI 定義了一個名為 spring.ai.azure.openai.api-key
的配置屬性,您應將其設定為從 Azure 取得的 API 金鑰值。還有一個名為 spring.ai.azure.openai.endpoint
的配置屬性,您應將其設定為在 Azure 中佈建模型時取得的端點 URL。匯出環境變數是設定這些配置屬性的一種方法
export SPRING_AI_AZURE_OPENAI_API_KEY=<INSERT KEY HERE>
export SPRING_AI_AZURE_OPENAI_ENDPOINT=<INSERT ENDPOINT URL HERE>
部署名稱
若要執行 Azure AI 應用程式,請透過 [Azure AI Portal](oai.azure.com/portal) 建立 Azure AI 部署。
在 Azure 中,每個用戶端都必須指定部署名稱才能連線至 Azure OpenAI 服務。
務必理解「部署名稱」與您選擇部署的模型不同
例如,名為 'MyImgAiDeployment' 的部署可以設定為使用 `Dalle3` 模型或 `Dalle2` 模型。
目前,為了簡化操作,您可以使用以下設定建立部署
部署名稱:`MyImgAiDeployment` 模型名稱:`Dalle3`
此 Azure 設定將與 Spring Boot Azure AI Starter 及其自動配置功能的預設配置一致。
如果您使用不同的部署名稱,請相應地更新配置屬性
spring.ai.azure.openai.image.options.deployment-name=<my deployment name>
Azure OpenAI 和 OpenAI 的不同部署結構導致 Azure OpenAI 用戶端程式庫中存在一個名為 `deploymentOrModelName` 的屬性。這是因為在 OpenAI 中沒有「部署名稱」,只有「模型名稱」。
自動配置
Spring AI 為 Azure OpenAI 聊天用戶端提供 Spring Boot 自動配置。若要啟用它,請將以下依賴項新增至專案的 Maven `pom.xml` 檔案
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-azure-openai-spring-boot-starter</artifactId>
</dependency>
或新增至 Gradle `build.gradle` 建置檔案。
dependencies {
implementation 'org.springframework.ai:spring-ai-azure-openai-spring-boot-starter'
}
請參閱〈依賴管理〉章節,將 Spring AI BOM 新增至您的建置檔案。 |
影像生成屬性
`spring.ai.openai.image` 前綴是用於配置 OpenAI 的 `ImageModel` 實作的屬性前綴。
屬性 |
描述 |
預設值 |
spring.ai.azure.openai.image.enabled |
啟用 OpenAI 影像模型。 |
true |
spring.ai.azure.openai.image.options.n |
要生成的影像數量。必須介於 1 到 10 之間。對於 dall-e-3,僅支援 n=1。 |
- |
spring.ai.azure.openai.image.options.model |
用於影像生成的模型。 |
AzureOpenAiImageOptions.DEFAULT_IMAGE_MODEL |
spring.ai.azure.openai.image.options.quality |
要生成的影像品質。HD 會建立具有更精細細節和影像間更高一致性的影像。此參數僅支援 dall-e-3。 |
- |
spring.ai.azure.openai.image.options.response_format |
傳回生成影像的格式。必須是 URL 或 b64_json 其中之一。 |
- |
|
生成影像的大小。對於 dall-e-2,必須是 256x256、512x512 或 1024x1024 其中之一。對於 dall-e-3 模型,必須是 1024x1024、1792x1024 或 1024x1792 其中之一。 |
- |
|
生成影像的寬度。對於 dall-e-2,必須是 256、512 或 1024 其中之一。 |
- |
|
生成影像的高度。對於 dall-e-2,必須是 256、512 或 1024 其中之一。 |
- |
|
生成影像的樣式。必須是 vivid 或 natural 其中之一。Vivid 會使模型傾向於生成超現實和戲劇性的影像。Natural 會使模型產生更自然、較不超現實的影像。此參數僅支援 dall-e-3。 |
- |
|
代表您最終使用者的唯一識別碼,可協助 Azure OpenAI 監控和偵測濫用行為。 |
- |
執行階段選項
The OpenAiImageOptions.java 提供模型配置,例如要使用的模型、品質、大小等等。
在啟動時,可以使用 `AzureOpenAiImageModel(OpenAiImageApi openAiImageApi)` 建構子和 `withDefaultOptions(OpenAiImageOptions defaultOptions)` 方法配置預設選項。或者,使用先前描述的 `spring.ai.azure.openai.image.options.*` 屬性。
在執行階段,您可以透過將新的、特定於請求的選項新增至 `ImagePrompt` 呼叫來覆寫預設選項。例如,若要覆寫 OpenAI 特定的選項,例如品質和要建立的影像數量,請使用以下程式碼範例
ImageResponse response = azureOpenaiImageModel.call(
new ImagePrompt("A light cream colored mini golden doodle",
OpenAiImageOptions.builder()
.withQuality("hd")
.withN(4)
.withHeight(1024)
.withWidth(1024).build())
);
除了模型特定的 AzureOpenAiImageOptions 之外,您還可以使用可攜式的 ImageOptions 實例,該實例是使用 ImageOptionsBuilder#builder() 建立的。 |