快速入門:使用 Azure OpenAI 服務產生影像
注意
影像產生 API 會從文字提示建立影像。 它不會編輯現有的影像或為其建立變體。
使用本指南,透過 Azure AI Foundry 開始在瀏覽器中使用 Azure OpenAI 產生影像。
必要條件
- Azure 訂用帳戶。 免費建立一個。
- 在支援的區域中建立的 Azure OpenAI 資源。 請參閱區域可用性 (英文)。 如需詳細資訊,請參閱使用 Azure OpenAI 建立資源及部署模型。
移至 Azure AI Foundry
流覽至 Azure AI Foundry ,並使用與 Azure OpenAI 資源相關聯的認證登入。 在登入工作流程期間 (或之後),選取適當的目錄、Azure 訂用帳戶和 Azure OpenAI 資源。
從 Azure AI Foundry 登陸頁面,建立或選取新的專案。 瀏覽至 左側導覽的 [模型 + 端點 ] 頁面。 選取 [部署模型 ],然後從清單中選擇其中一個 DALL-E 模型。 完成部署程式。
在模型的頁面上,選取 [在遊樂場中開啟]。
試用映射產生
透過 [影像遊樂場] 以無程式碼方法開始探索 Azure OpenAI 功能。 在文字方塊中輸入您的影像提示字元,然後選取 [產生]。 當 AI 產生的影像準備就緒時,它會出現在頁面上。
注意
影像產生 API 隨附內容仲裁篩選器。 如果 Azure OpenAI 將提示辨識為有害內容,則就不會傳回產生的影像。 如需詳細資訊,請參閱內容篩選。
在 [影像遊樂場] 中,您也可以檢視根據設定預先填入的 Python 和 cURL 程式碼範例。 選取頁面頂端附近的 [檢視程式碼]。 您可以使用此程式碼來撰寫能完成相同工作的應用程式。
清除資源
如果您想要清除和移除 Azure OpenAI 資源,則可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。
下一步
- 透過 DALL-E 操作指南更深入地探索影像生成 API。
- 請嘗試 Azure OpenAI 範例 GitHub 存放庫中的範例。
- 請參閱 API 參考
使用本指南,開始透過 Python 來呼叫 Azure OpenAI 服務影像產生 REST API。
必要條件
- Azure 訂用帳戶。 免費建立一個。
- Python 3.8 或更新版本。
- 已安裝下列 Python 程式庫:
os
、requests
、json
。 - 在支援的區域中建立的 Azure OpenAI 資源。 請參閱區域可用性 (英文)。
- 然後,您必須使用您的 Azure 資源來部署
dalle3
模型。 如需詳細資訊,請參閱使用 Azure OpenAI 建立資源及部署模型。
設定
擷取金鑰和端點
若要成功呼叫 Azure OpenAI API,您需要有關 Azure OpenAI 資源的下列資訊:
變數 | 名稱 | 值 |
---|---|---|
端點 | api_base |
端點值位於 Azure 入口網站中資源的 [金鑰] 和 [端點]。 您也可以透過 Azure AI Foundry 入口網站中的 [部署 ] 頁面來尋找端點。 範例端點為:https://docs-test-001.openai.azure.com/ 。 |
索引鍵 | api_key |
金鑰值同樣也位於 Azure 入口網站中資源的 [金鑰] 和 [端點]。 Azure 會為您的資源產生兩個金鑰。 您可以使用任何一者。 |
移至您在 Azure 入口網站中的資源。 在瀏覽窗格中,選取 [資源管理] 下的 [金鑰和端點]。 複製端點值和存取金鑰值。 您可以使用 KEY 1 或 KEY 2 值。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。
環境變數
為您的金鑰和端點建立及指派永續性環境變數。
重要
如果您使用 API 金鑰,請將其安全地儲存在別處,例如 Azure Key Vault。 請勿在程式碼中直接包含 API 金鑰,且切勿公開張貼金鑰。
如需 AI 服務安全性的詳細資訊,請參閱驗證對 Azure AI 服務的要求 (英文)。
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
建立新的 Python 應用程式
建立命名為 quickstart.py 的新 Python 檔案。 在您慣用的編輯器或整合式開發環境 (IDE) 中,開啟新檔案。
將 quickstart.py 的內容取代為下列程式碼。 將
prompt
的值變更為您慣用的文字。您也需要將 URL 中的
<dalle3>
取代為為您在部署 DALL-E 3 模型時所選擇的部署名稱。 除非您選擇與基礎模型名稱相同的部署名稱,否則輸入模型名稱會導致錯誤。 如果您遇到錯誤,請再次檢查以確定端點與/openai/deployments
之間的分隔處沒有重複兩個/
。import requests import time import os api_base = os.environ['AZURE_OPENAI_ENDPOINT'] # Enter your endpoint here api_key = os.environ['AZURE_OPENAI_API_KEY'] # Enter your API key here api_version = '2024-02-01' url = f"{api_base}/openai/deployments/<dalle3>/images/generations?api-version={api_version}" headers= { "api-key": api_key, "Content-Type": "application/json" } body = { # Enter your prompt text here "prompt": "A multi-colored umbrella on the beach, disposable camera", "size": "1024x1024", # supported values are “1792x1024”, “1024x1024” and “1024x1792” "n": 1, #The number of images to generate. Only n=1 is supported for DALL-E 3. "quality": "hd", # Options are “hd” and “standard”; defaults to standard "style": "vivid" # Options are “natural” and “vivid”; defaults to “vivid” } submission = requests.post(url, headers=headers, json=body) image_url = submission.json()['data'][0]['url'] print(image_url)
指令碼會進行同步影像生成 API 呼叫。
重要
切記,完成時請從程式碼中移除金鑰,且切勿公開發佈您的金鑰。 在生產環境中,請運用安全的方式來儲存和存取您的登入資訊。 如需詳細資訊,請參閱 Azure Key Vault。
使用
python
命令執行應用程式:python quickstart.py
請稍候片刻以取得回應。
輸出
成功影像產生 API 呼叫的輸出看起來像下列範例。 url
欄位包含 URL,您可以在其中下載產生的影像。 URL 會維持在作用中 24 小時。
{
"created": 1698116662,
"data": [
{
"url": "<URL_to_generated_image>",
"revised_prompt": "<prompt_that_was_used>"
}
]
}
影像產生 API 隨附內容仲裁篩選器。 如果服務將提示辨識為有害內容,則它就不會產生影像。 如需詳細資訊,請參閱內容篩選。 如需錯誤回應的範例,請參閱 DALL-E 操作指南。
系統會傳回 Failed
的作業狀態,且訊息中的 error.code
值會設定為 contentFilter
。 以下是範例:
{
"created": 1698435368,
"error":
{
"code": "contentFilter",
"message": "Your task failed as a result of our safety system."
}
}
產生的影像本身也可能遭到篩選。 在此情況下,錯誤訊息會設定為 Generated image was filtered as a result of our safety system.
。 以下是範例:
{
"created": 1698435368,
"error":
{
"code": "contentFilter",
"message": "Generated image was filtered as a result of our safety system."
}
}
清除資源
如果您想要清除和移除 Azure OpenAI 資源,則可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。
下一步
- 透過 DALL-E 操作指南更深入地探索影像生成 API。
- 請嘗試 Azure OpenAI 範例 GitHub 存放庫中的範例。
- 請參閱 API 參考
使用本指南開始使用適用於 Python 的 Azure OpenAI SDK 生成影像。
必要條件
- Azure 訂用帳戶。 免費建立一個。
- Python 3.8 或更新版本。
- 在相容的區域中建立的 Azure OpenAI 資源。 請參閱區域可用性 (英文)。
- 然後,您必須使用您的 Azure 資源來部署
dalle3
模型。 如需詳細資訊,請參閱使用 Azure OpenAI 建立資源及部署模型。
設定
擷取金鑰和端點
若要成功呼叫 Azure OpenAI API,您需要有關 Azure OpenAI 資源的下列資訊:
變數 | 名稱 | 值 |
---|---|---|
端點 | api_base |
端點值位於 Azure 入口網站中資源的 [金鑰] 和 [端點]。 您也可以透過 Azure AI Foundry 入口網站中的 [部署 ] 頁面來尋找端點。 範例端點為:https://docs-test-001.openai.azure.com/ 。 |
索引鍵 | api_key |
金鑰值同樣也位於 Azure 入口網站中資源的 [金鑰] 和 [端點]。 Azure 會為您的資源產生兩個金鑰。 您可以使用任何一者。 |
移至您在 Azure 入口網站中的資源。 在瀏覽窗格中,選取 [資源管理] 下的 [金鑰和端點]。 複製端點值和存取金鑰值。 您可以使用 KEY 1 或 KEY 2 值。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。
環境變數
為您的金鑰和端點建立及指派永續性環境變數。
重要
如果您使用 API 金鑰,請將其安全地儲存在別處,例如 Azure Key Vault。 請勿在程式碼中直接包含 API 金鑰,且切勿公開張貼金鑰。
如需 AI 服務安全性的詳細資訊,請參閱驗證對 Azure AI 服務的要求 (英文)。
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
探索 Python SDK
開啟命令提示字元,並瀏覽至您的專案資料夾。 使用下列命令安裝 OpenAI Python SDK:
pip install openai
也請安裝下列程式庫:
pip install requests
pip install pillow
使用 DALL-E 生成影像
建立一個新的 Python 檔案 quickstart.py。 在您慣用的編輯器或 IDE 中加以開啟。
將 quickstart.py 的內容取代為下列程式碼。
from openai import AzureOpenAI
import os
import requests
from PIL import Image
import json
client = AzureOpenAI(
api_version="2024-02-01",
api_key=os.environ["AZURE_OPENAI_API_KEY"],
azure_endpoint=os.environ['AZURE_OPENAI_ENDPOINT']
)
result = client.images.generate(
model="dalle3", # the name of your DALL-E 3 deployment
prompt="a close-up of a bear walking throughthe forest",
n=1
)
json_response = json.loads(result.model_dump_json())
# Set the directory for the stored image
image_dir = os.path.join(os.curdir, 'images')
# If the directory doesn't exist, create it
if not os.path.isdir(image_dir):
os.mkdir(image_dir)
# Initialize the image path (note the filetype should be png)
image_path = os.path.join(image_dir, 'generated_image.png')
# Retrieve the generated image
image_url = json_response["data"][0]["url"] # extract image URL from response
generated_image = requests.get(image_url).content # download the image
with open(image_path, "wb") as image_file:
image_file.write(generated_image)
# Display the image in the default image viewer
image = Image.open(image_path)
image.show()
- 在適當的欄位中輸入您的端點 URL 和金鑰。
- 將
prompt
的值變更為您慣用的文字。 - 將
model
的值變更為您部署的 DALL-E 3 模型的名稱。
重要
切記,完成時請從程式碼中移除金鑰,且切勿公開發佈您的金鑰。 在生產環境中,請運用安全的方式來儲存和存取您的登入資訊。 如需詳細資訊,請參閱 Azure Key Vault。
使用 python
命令執行應用程式:
python quickstart.py
請稍候片刻以取得回應。
輸出
Azure OpenAI 會將輸出影像儲存在指定目錄中的 generated_image.png 檔案中。 然後,指令碼也會在預設的影像檢視器中顯示該影像。
影像產生 API 隨附內容仲裁篩選器。 如果服務將提示辨識為有害內容,則它就不會產生影像。 如需詳細資訊,請參閱內容篩選。
清除資源
如果您想要清除和移除 Azure OpenAI 資源,則可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。
下一步
- 透過 DALL-E 操作指南更深入地探索影像生成 API。
- 請嘗試 Azure OpenAI 範例 GitHub 存放庫中的範例。
- 請參閱 API 參考
使用本指南開始使用適用於 C# 的 Azure OpenAI SDK 生成影像。
程式庫原始程式碼 | 套件 (NuGet) | 範例
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- .NET 7 SDK
- 在支援的區域中建立的 Azure OpenAI 資源 (請查看區域可用性)。 如需詳細資訊,請參閱使用 Azure OpenAI 建立資源及部署模型。
設定
擷取金鑰和端點
若要成功對 Azure OpenAI 進行呼叫,您需要端點和金鑰。
變數名稱 | 值 |
---|---|
ENDPOINT |
檢查來自 Azure 入口網站 的資源時,可以在 [金鑰與端點] 區段中找到服務端點。 或者,您也可以透過 Azure AI Foundry 入口網站中的 [部署 ] 頁面來尋找端點。 範例端點為:https://docs-test-001.openai.azure.com/ 。 |
API-KEY |
從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1 或 KEY2 。 |
移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [金鑰和端點] 區段。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1
或 KEY2
。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。
環境變數
為您的金鑰和端點建立及指派永續性環境變數。
重要
如果您使用 API 金鑰,請將其安全地儲存在別處,例如 Azure Key Vault。 請勿在程式碼中直接包含 API 金鑰,且切勿公開張貼金鑰。
如需 AI 服務安全性的詳細資訊,請參閱驗證對 Azure AI 服務的要求 (英文)。
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
建立新的 .NET Core 應用程式
在主控台視窗中 (例如 cmd、PowerShell 或 Bash),使用 dotnet new
命令建立名為 azure-openai-quickstart
的新主控台應用程式。 此命令會建立簡單的 "Hello World" 專案,內含單一 C# 來源檔案:Program.cs。
dotnet new console -n azure-openai-quickstart
將目錄變更為新建立的應用程式資料夾。 您可以使用下列命令來建置應用程式:
dotnet build
建置輸出應該不會有警告或錯誤。
...
Build succeeded.
0 Warning(s)
0 Error(s)
...
安裝 OpenAI .NET SDK
使用以下項目安裝用戶端程式庫:
dotnet add package Azure.AI.OpenAI --version 1.0.0-beta.6
使用 DALL-E 生成影像
從專案目錄中,開啟 program.cs 檔案並將內容取代為以下程式碼:
using Azure;
using Azure.AI.OpenAI;
using OpenAI.Images;
using static System.Environment;
string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
string key = GetEnvironmentVariable("AZURE_OPENAI_API_KEY");
AzureOpenAIClient azureClient = new(
new Uri(endpoint),
new AzureKeyCredential(key));
// This must match the custom deployment name you chose for your model
ImageClient chatClient = azureClient.GetImageClient("dalle-3");
var imageGeneration = await chatClient.GenerateImageAsync(
"a happy monkey sitting in a tree, in watercolor",
new ImageGenerationOptions()
{
Size = GeneratedImageSize.W1024xH1024
}
);
Console.WriteLine(imageGeneration.Value.ImageUri);
使用這些命令從您的應用程式目錄建置並執行應用程式:
dotnet build
dotnet run
輸出
生成的影像 URL 會列印至主控台。
https://dalleproduse.blob.core.windows.net/private/images/b7ac5e55-f1f8-497a-8d0e-8f51446bf538/generated_00.png?se=2024-07-12T13%3A47%3A56Z&sig=Zri37iYVTVtc52qzTFBOqPgSHvXwEhcO86Smv2ojB%2FE%3D&ske=2024-07-17T12%3A15%3A44Z&skoid=09ba021e-c417-441c-b203-c81e5dcd7b7f&sks=b&skt=2024-07-10T12%3A15%3A44Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02
注意
影像產生 API 隨附內容仲裁篩選器。 如果服務將提示辨識為有害內容,則就不會傳回產生的影像。 如需詳細資訊,請參閱內容篩選條件文章。
清除資源
如果您想要清除和移除 Azure OpenAI 資源,可以刪除資源。 刪除資源之前,您必須先刪除任何已部署的模型。
下一步
- 透過 DALL-E 操作指南更深入地探索影像生成 API。
- 如需更多範例,請參閱 Azure OpenAI 範例 GitHub 存放庫 (英文)。
使用本指南開始使用適用於 Java 的 Azure OpenAI SDK 生成影像。
程式庫原始程式碼 | 成品 (Maven) | 範例
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- 最新版的 Java Development Kit (JDK)
- Gradle 建置工具,或其他相依性管理員。
- 在支援的區域中建立的 Azure OpenAI 資源 (請查看區域可用性)。 如需詳細資訊,請參閱使用 Azure OpenAI 建立資源及部署模型。
設定
擷取金鑰和端點
若要成功對 Azure OpenAI 進行呼叫,您需要端點和金鑰。
變數名稱 | 值 |
---|---|
ENDPOINT |
檢查來自 Azure 入口網站 的資源時,可以在 [金鑰與端點] 區段中找到服務端點。 或者,您也可以透過 Azure AI Foundry 入口網站中的 [部署 ] 頁面來尋找端點。 範例端點為:https://docs-test-001.openai.azure.com/ 。 |
API-KEY |
從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1 或 KEY2 。 |
移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [金鑰和端點] 區段。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1
或 KEY2
。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。
環境變數
為您的金鑰和端點建立及指派永續性環境變數。
重要
如果您使用 API 金鑰,請將其安全地儲存在別處,例如 Azure Key Vault。 請勿在程式碼中直接包含 API 金鑰,且切勿公開張貼金鑰。
如需 AI 服務安全性的詳細資訊,請參閱驗證對 Azure AI 服務的要求 (英文)。
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
建立新的 Java 應用程式
建立新的 Gradle 專案。
在主控台視窗 (例如 cmd、PowerShell 或 Bash) 中,為您的應用程式建立新的目錄,並瀏覽至該目錄。
mkdir myapp && cd myapp
從您的工作目錄執行 gradle init
命令。 此命令會建立 Gradle 的基本組建檔案,包括 build.gradle.kts,此檔案將在執行階段用來建立及設定您的應用程式。
gradle init --type basic
出現選擇 DSL 的提示時,請選取 [Kotlin]。
安裝 Java SDK
本快速入門會使用 Gradle 相依性管理員。 您可以在 Maven 中央存放庫中找到用戶端程式庫和其他相依性管理員的資訊。
找出 build.gradle.kts,並使用您慣用的 IDE 或文字編輯器加以開啟。 然後,在其中複製下列組建組態。 此設定會將專案定義為一個 JAVA 應用程式,其進入點為 OpenAIQuickstart。 其會匯入 Azure AI 視覺程式庫。
plugins {
java
application
}
application {
mainClass.set("OpenAIQuickstart")
}
repositories {
mavenCentral()
}
dependencies {
implementation(group = "com.azure", name = "azure-ai-openai", version = "1.0.0-beta.3")
implementation("org.slf4j:slf4j-simple:1.7.9")
}
使用 DALL-E 生成影像
建立 Java 檔案。
在您的工作目錄中執行下列命令,以建立專案來源資料夾:
mkdir -p src/main/java
瀏覽至新的資料夾,並建立名為 OpenAIQuickstart.java 的檔案。
在慣用的編輯器或 IDE 中開啟 OpenAIQuickstart.java,並貼上下列程式碼。
import com.azure.ai.openai.OpenAIAsyncClient; import com.azure.ai.openai.OpenAIClientBuilder; import com.azure.ai.openai.models.ImageGenerationOptions; import com.azure.ai.openai.models.ImageLocation; import com.azure.core.credential.AzureKeyCredential; import com.azure.core.models.ResponseError; import java.util.concurrent.TimeUnit; /** * Sample demonstrates how to get the images for a given prompt. */ public class OpenAIQuickstart { /** * Runs the sample algorithm and demonstrates how to get the images for a given prompt. * * @param args Unused. Arguments to the program. */ public static void main(String[] args) throws InterruptedException { // Get key and endpoint from environment variables: String azureOpenaiKey = System.getenv("AZURE_OPENAI_API_KEY"); String endpoint = System.getenv("AZURE_OPENAI_ENDPOINT"); OpenAIAsyncClient client = new OpenAIClientBuilder() .endpoint(endpoint) .credential(new AzureKeyCredential(azureOpenaiKey)) .buildAsyncClient(); ImageGenerationOptions imageGenerationOptions = new ImageGenerationOptions( "A drawing of the Seattle skyline in the style of Van Gogh"); client.getImages(imageGenerationOptions).subscribe( images -> { for (ImageLocation imageLocation : images.getData()) { ResponseError error = imageLocation.getError(); if (error != null) { System.out.printf("Image generation operation failed. Error code: %s, error message: %s.%n", error.getCode(), error.getMessage()); } else { System.out.printf( "Image location URL that provides temporary access to download the generated image is %s.%n", imageLocation.getUrl()); } } }, error -> System.err.println("There was an error getting images." + error), () -> System.out.println("Completed getImages.")); // The .subscribe() creation and assignment is not a blocking call. For the purpose of this example, we sleep // the thread so the program does not end before the send operation is complete. Using .block() instead of // .subscribe() will turn this into a synchronous call. TimeUnit.SECONDS.sleep(10); } }
瀏覽回專案根資料夾,並使用下列項目建置應用程式:
gradle build
然後,使用
gradle run
命令加以執行:gradle run
輸出
生成的影像 URL 會列印至主控台。
Image location URL that provides temporary access to download the generated image is https://dalleproduse.blob.core.windows.net/private/images/d2ea917f-8802-4ad6-8ef6-3fb7a15c8482/generated_00.png?se=2023-08-25T23%3A11%3A28Z&sig=%2BKa5Mkb9U88DfvxoBpyAjamYRzwb7aVCEucM6XJC3wQ%3D&ske=2023-08-31T15%3A27%3A47Z&skoid=09ba021e-c417-441c-b203-c81e5dcd7b7f&sks=b&skt=2023-08-24T15%3A27%3A47Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02.
Completed getImages.
注意
影像產生 API 隨附內容仲裁篩選器。 如果服務將提示辨識為有害內容,則就不會傳回產生的影像。 如需詳細資訊,請參閱內容篩選條件文章。
清除資源
如果您想要清除和移除 Azure OpenAI 資源,可以刪除資源。 刪除資源之前,您必須先刪除任何已部署的模型。
下一步
- 透過 DALL-E 操作指南更深入地探索影像生成 API。
- 如需更多範例,請參閱 Azure OpenAI 範例 GitHub 存放庫
使用本指南開始使用適用於 JavaScript 的 Azure OpenAI SDK 生成影像。
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- LTS 版本的 Node.js
- Azure CLI 用於本地開發環境中的無密碼驗證,請使用 Azure CLI 登入以建立必要內容。
- 在支援的區域中建立的 Azure OpenAI 資源 (請查看區域可用性)。 如需詳細資訊,請參閱使用 Azure OpenAI 建立資源及部署模型。
設定
擷取金鑰和端點
若要成功對 Azure OpenAI 進行呼叫,您需要端點和金鑰。
變數名稱 | 值 |
---|---|
ENDPOINT |
檢查來自 Azure 入口網站 的資源時,可以在 [金鑰與端點] 區段中找到服務端點。 或者,您也可以透過 Azure AI Foundry 入口網站中的 [部署 ] 頁面來尋找端點。 範例端點為:https://docs-test-001.openai.azure.com/ 。 |
API-KEY |
從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1 或 KEY2 。 |
移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [金鑰和端點] 區段。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1
或 KEY2
。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。
環境變數
為您的金鑰和端點建立及指派永續性環境變數。
重要
如果您使用 API 金鑰,請將其安全地儲存在別處,例如 Azure Key Vault。 請勿在程式碼中直接包含 API 金鑰,且切勿公開張貼金鑰。
如需 AI 服務安全性的詳細資訊,請參閱驗證對 Azure AI 服務的要求 (英文)。
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
建立節點應用程式
在主控台視窗 (例如 cmd、PowerShell 或 Bash) 中,為您的應用程式建立新的目錄,並瀏覽至該目錄。 然後執行 npm init
命令以使用 package.json 檔案建立節點應用程式。
npm init
安裝用戶端程式庫
使用下列項目安裝用戶端程式庫:
npm install openai @azure/identity
您應用程式的 package.json 檔案將會隨著相依性更新。
使用 DALL-E 生成影像
建立一個名為 ImageGeneration.js 的新檔案,然後在您慣用的程式碼編輯器中將其開啟。 將以下程式碼複製到 ImageGeneration.js 檔案中:
const { AzureOpenAI } = require("openai");
const {
DefaultAzureCredential,
getBearerTokenProvider
} = require("@azure/identity");
// You will need to set these environment variables or edit the following values
const endpoint = process.env["AZURE_OPENAI_ENDPOINT"];
// Required Azure OpenAI deployment name and API version
const apiVersion = "2024-07-01";
const deploymentName = "dall-e-3";
// The prompt to generate images from
const prompt = "a monkey eating a banana";
const numberOfImagesToGenerate = 1;
// keyless authentication
const credential = new DefaultAzureCredential();
const scope = "https://cognitiveservices.azure.com/.default";
const azureADTokenProvider = getBearerTokenProvider(credential, scope);
function getClient(): AzureOpenAI {
return new AzureOpenAI({
endpoint,
azureADTokenProvider,
apiVersion,
deployment: deploymentName,
});
}
async function main() {
console.log("== Image Generation ==");
const client = getClient();
const results = await client.images.generate({
prompt,
size: "1024x1024",
n: numberOfImagesToGenerate,
model: "",
style: "vivid", // or "natural"
});
for (const image of results.data) {
console.log(`Image generation result URL: ${image.url}`);
}
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
使用下列命令來執行指令碼:
node ImageGeneration.js
輸出
生成的影像 URL 會列印至主控台。
== Batch Image Generation ==
Image generation result URL: https://dalleproduse.blob.core.windows.net/private/images/5e7536a9-a0b5-4260-8769-2d54106f2913/generated_00.png?se=2023-08-29T19%3A12%3A57Z&sig=655GkWajOZ9ALjFykZF%2FBMZRPQALRhf4UPDImWCQoGI%3D&ske=2023-09-02T18%3A53%3A23Z&skoid=09ba021e-c417-441c-b203-c81e5dcd7b7f&sks=b&skt=2023-08-26T18%3A53%3A23Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02
Image generation result URL: https://dalleproduse.blob.core.windows.net/private/images/5e7536a9-a0b5-4260-8769-2d54106f2913/generated_01.png?se=2023-08-29T19%3A12%3A57Z&sig=B24ymPLSZ3HfG23uojOD9VlRFGxjvgcNmvFo4yPUbEc%3D&ske=2023-09-02T18%3A53%3A23Z&skoid=09ba021e-c417-441c-b203-c81e5dcd7b7f&sks=b&skt=2023-08-26T18%3A53%3A23Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02
注意
影像產生 API 隨附內容仲裁篩選器。 如果服務將提示辨識為有害內容,則就不會傳回產生的影像。 如需詳細資訊,請參閱內容篩選條件文章。
清除資源
如果您想要清除和移除 Azure OpenAI 資源,可以刪除資源。 刪除資源之前,您必須先刪除任何已部署的模型。
下一步
- 透過 DALL-E 操作指南更深入地探索影像生成 API。
- 如需更多範例,請參閱 Azure OpenAI 範例 GitHub 存放庫 (英文)。
使用本指南開始使用適用於 JavaScript 的 Azure OpenAI SDK 生成影像。
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- LTS 版本的 Node.js
- TypeScript
- Azure CLI 用於本地開發環境中的無密碼驗證,請使用 Azure CLI 登入以建立必要內容。
- 在支援的區域中建立的 Azure OpenAI 資源 (請查看區域可用性)。 如需詳細資訊,請參閱使用 Azure OpenAI 建立資源及部署模型。
設定
擷取金鑰和端點
若要成功對 Azure OpenAI 進行呼叫,您需要端點和金鑰。
變數名稱 | 值 |
---|---|
ENDPOINT |
檢查來自 Azure 入口網站 的資源時,可以在 [金鑰與端點] 區段中找到服務端點。 或者,您也可以透過 Azure AI Foundry 入口網站中的 [部署 ] 頁面來尋找端點。 範例端點為:https://docs-test-001.openai.azure.com/ 。 |
API-KEY |
從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1 或 KEY2 。 |
移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [金鑰和端點] 區段。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1
或 KEY2
。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。
環境變數
為您的金鑰和端點建立及指派永續性環境變數。
重要
如果您使用 API 金鑰,請將其安全地儲存在別處,例如 Azure Key Vault。 請勿在程式碼中直接包含 API 金鑰,且切勿公開張貼金鑰。
如需 AI 服務安全性的詳細資訊,請參閱驗證對 Azure AI 服務的要求 (英文)。
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
建立節點應用程式
在主控台視窗 (例如 cmd、PowerShell 或 Bash) 中,為您的應用程式建立新的目錄,並瀏覽至該目錄。 然後執行 npm init
命令以使用 package.json 檔案建立節點應用程式。
npm init
安裝用戶端程式庫
使用下列項目安裝用戶端程式庫:
npm install openai @azure/identity
您應用程式的 package.json 檔案將會隨著相依性更新。
使用 DALL-E 生成影像
建立名為 ImageGeneration.ts 的新檔案, 並在您慣用的程式代碼編輯器中開啟它。 將下列程式代碼複製到 ImageGeneration.ts 檔案:
import { AzureOpenAI } from "openai";
import {
DefaultAzureCredential,
getBearerTokenProvider
} from "@azure/identity";
// You will need to set these environment variables or edit the following values
const endpoint = process.env["AZURE_OPENAI_ENDPOINT"];
// Required Azure OpenAI deployment name and API version
const apiVersion = "2024-07-01";
const deploymentName = "dall-e-3";
// keyless authentication
const credential = new DefaultAzureCredential();
const scope = "https://cognitiveservices.azure.com/.default";
const azureADTokenProvider = getBearerTokenProvider(credential, scope);
function getClient(): AzureOpenAI {
return new AzureOpenAI({
endpoint,
azureADTokenProvider,
apiVersion,
deployment: deploymentName,
});
}
async function main() {
console.log("== Image Generation ==");
const client = getClient();
const results = await client.images.generate({
prompt,
size: "1024x1024",
n: numberOfImagesToGenerate,
model: "",
style: "vivid", // or "natural"
});
for (const image of results.data) {
console.log(`Image generation result URL: ${image.url}`);
}
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
使用下列命令建置應用程式:
tsc
使用下列命令執行您的應用程式:
node ImageGeneration.js
輸出
生成的影像 URL 會列印至主控台。
== Batch Image Generation ==
Image generation result URL: https://dalleproduse.blob.core.windows.net/private/images/5e7536a9-a0b5-4260-8769-2d54106f2913/generated_00.png?se=2023-08-29T19%3A12%3A57Z&sig=655GkWajOZ9ALjFykZF%2FBMZRPQALRhf4UPDImWCQoGI%3D&ske=2023-09-02T18%3A53%3A23Z&skoid=09ba021e-c417-441c-b203-c81e5dcd7b7f&sks=b&skt=2023-08-26T18%3A53%3A23Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02
Image generation result URL: https://dalleproduse.blob.core.windows.net/private/images/5e7536a9-a0b5-4260-8769-2d54106f2913/generated_01.png?se=2023-08-29T19%3A12%3A57Z&sig=B24ymPLSZ3HfG23uojOD9VlRFGxjvgcNmvFo4yPUbEc%3D&ske=2023-09-02T18%3A53%3A23Z&skoid=09ba021e-c417-441c-b203-c81e5dcd7b7f&sks=b&skt=2023-08-26T18%3A53%3A23Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02
注意
影像產生 API 隨附內容仲裁篩選器。 如果服務將提示辨識為有害內容,則就不會傳回產生的影像。 如需詳細資訊,請參閱內容篩選條件文章。
清除資源
如果您想要清除和移除 Azure OpenAI 資源,可以刪除資源。 刪除資源之前,您必須先刪除任何已部署的模型。
下一步
- 透過 DALL-E 操作指南更深入地探索影像生成 API。
- 如需更多範例,請參閱 Azure OpenAI 範例 GitHub 存放庫 (英文)。
使用本指南開始使用適用於 Go 的 Azure OpenAI SDK 生成影像。
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- Go 1.8+
- 在支援的區域中建立的 Azure OpenAI 資源 (請查看區域可用性)。 如需詳細資訊,請參閱使用 Azure OpenAI 建立資源及部署模型。
設定
擷取金鑰和端點
若要成功對 Azure OpenAI 進行呼叫,您需要端點和金鑰。
變數名稱 | 值 |
---|---|
ENDPOINT |
檢查來自 Azure 入口網站 的資源時,可以在 [金鑰與端點] 區段中找到服務端點。 或者,您也可以透過 Azure AI Foundry 入口網站中的 [部署 ] 頁面來尋找端點。 範例端點為:https://docs-test-001.openai.azure.com/ 。 |
API-KEY |
從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1 或 KEY2 。 |
移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [金鑰和端點] 區段。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1
或 KEY2
。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。
環境變數
為您的金鑰和端點建立及指派永續性環境變數。
重要
如果您使用 API 金鑰,請將其安全地儲存在別處,例如 Azure Key Vault。 請勿在程式碼中直接包含 API 金鑰,且切勿公開張貼金鑰。
如需 AI 服務安全性的詳細資訊,請參閱驗證對 Azure AI 服務的要求 (英文)。
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
建立新的 Go 應用程式
開啟命令提示字元,並巡覽至專案資料夾。 建立新檔案 sample.go。
安裝 Go SDK
使用以下命令安裝 OpenAI Go SDK:
go get github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai@latest
或者,如果您使用 dep
,請在存放庫中執行:
dep ensure -add github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai
使用 DALL-E 生成影像
在您慣用的程式碼編輯器中開啟 sample.go。
將下列程式碼新增至您的指令碼中:
package main
import (
"context"
"fmt"
"net/http"
"os"
"github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai"
"github.com/Azure/azure-sdk-for-go/sdk/azcore"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
)
func main() {
azureOpenAIKey := os.Getenv("AZURE_OPENAI_API_KEY")
// Ex: "https://<your-azure-openai-host>.openai.azure.com"
azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")
if azureOpenAIKey == "" || azureOpenAIEndpoint == "" {
fmt.Fprintf(os.Stderr, "Skipping example, environment variables missing\n")
return
}
keyCredential := azcore.NewKeyCredential(azureOpenAIKey)
client, err := azopenai.NewClientWithKeyCredential(azureOpenAIEndpoint, keyCredential, nil)
if err != nil {
// handle error
}
resp, err := client.GetImageGenerations(context.TODO(), azopenai.ImageGenerationOptions{
Prompt: to.Ptr("a painting of a cat in the style of Dali"),
ResponseFormat: to.Ptr(azopenai.ImageGenerationResponseFormatURL),
}, nil)
if err != nil {
// handle error
}
for _, generatedImage := range resp.Data {
// the underlying type for the generatedImage is dictated by the value of
// ImageGenerationOptions.ResponseFormat. In this example we used `azopenai.ImageGenerationResponseFormatURL`,
// so the underlying type will be ImageLocation.
resp, err := http.Head(*generatedImage.URL)
if err != nil {
// handle error
}
fmt.Fprintf(os.Stderr, "Image generated, HEAD request on URL returned %d\nImage URL: %s\n", resp.StatusCode, *generatedImage.URL)
}
}
使用 go run
命令執行指令碼:
go run sample.go
輸出
生成的影像 URL 會列印至主控台。
Image generated, HEAD request on URL returned 200
Image URL: https://dalleproduse.blob.core.windows.net/private/images/d7b28a5c-ca32-4792-8c2a-6a5d8d8e5e45/generated_00.png?se=2023-08-29T17%3A05%3A37Z&sig=loqntaPypYVr9VTT5vpbsjsCz31g1GsdoQi0smbGkks%3D&ske=2023-09-02T18%3A53%3A23Z&skoid=09ba021e-c417-441c-b203-c81e5dcd7b7f&sks=b&skt=2023-08-26T18%3A53%3A23Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02
注意
影像產生 API 隨附內容仲裁篩選器。 如果服務將提示辨識為有害內容,則就不會傳回產生的影像。 如需詳細資訊,請參閱內容篩選條件文章。
清除資源
如果您想要清除和移除 Azure OpenAI 資源,則可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。
下一步
- 透過 DALL-E 操作指南更深入地探索影像生成 API。
- 如需更多範例,請參閱 Azure OpenAI 範例 GitHub 存放庫 (英文)。
使用本指南開始使用 PowerShell 呼叫 Azure OpenAI 服務影像產生 API。
注意
影像產生 API 會從文字提示建立影像。 它不會編輯現有的影像或建立其變體。
必要條件
- Azure 訂用帳戶。 免費建立一個。
- 對於此工作,建議使用最新版本的 PowerShell 7,因為範例使用了 Windows PowerShell 5.1 中未提供的新功能。
- 在支援的區域中建立的 Azure OpenAI 資源 (請查看區域可用性)。 如需詳細資訊,請參閱使用 Azure OpenAI 建立資源及部署模型。
設定
擷取金鑰和端點
若要成功對 Azure OpenAI 進行呼叫,您需要端點和金鑰。
變數名稱 | 值 |
---|---|
ENDPOINT |
檢查來自 Azure 入口網站 的資源時,可以在 [金鑰與端點] 區段中找到服務端點。 或者,您也可以透過 Azure AI Foundry 入口網站中的 [部署 ] 頁面來尋找端點。 範例端點為:https://docs-test-001.openai.azure.com/ 。 |
API-KEY |
從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1 或 KEY2 。 |
移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [金鑰和端點] 區段。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1
或 KEY2
。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。
環境變數
為您的金鑰和端點建立及指派永續性環境變數。
重要
如果您使用 API 金鑰,請將其安全地儲存在別處,例如 Azure Key Vault。 請勿在程式碼中直接包含 API 金鑰,且切勿公開張貼金鑰。
如需 AI 服務安全性的詳細資訊,請參閱驗證對 Azure AI 服務的要求 (英文)。
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
使用 DALL-E 2 產生影像
建立一個名為 quickstart.ps1 的新 PowerShell 檔案。 在您慣用的編輯器或整合式開發環境 (IDE) 中,開啟新檔案。
將 quickstart.ps1 的內容取代為以下程式碼。 在適當的欄位中輸入您的端點 URL 和金鑰。 將
prompt
的值變更為您慣用的文字。# Azure OpenAI metadata variables $openai = @{ api_key = $Env:AZURE_OPENAI_API_KEY api_base = $Env:AZURE_OPENAI_ENDPOINT # your endpoint should look like the following https://YOUR_RESOURCE_NAME.openai.azure.com/ api_version = '2023-06-01-preview' # this may change in the future } # Text to describe image $prompt = 'A painting of a dog' # Header for authentication $headers = [ordered]@{ 'api-key' = $openai.api_key } # Adjust these values to fine-tune completions $body = [ordered]@{ prompt = $prompt size = '1024x1024' n = 1 } | ConvertTo-Json # Call the API to generate the image and retrieve the response $url = "$($openai.api_base)/openai/images/generations:submit?api-version=$($openai.api_version)" $submission = Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Post -ContentType 'application/json' -ResponseHeadersVariable submissionHeaders $operation_location = $submissionHeaders['operation-location'][0] $status = '' while ($status -ne 'succeeded') { Start-Sleep -Seconds 1 $response = Invoke-RestMethod -Uri $operation_location -Headers $headers $status = $response.status } # Set the directory for the stored image $image_dir = Join-Path -Path $pwd -ChildPath 'images' # If the directory doesn't exist, create it if (-not(Resolve-Path $image_dir -ErrorAction Ignore)) { New-Item -Path $image_dir -ItemType Directory } # Initialize the image path (note the filetype should be png) $image_path = Join-Path -Path $image_dir -ChildPath 'generated_image.png' # Retrieve the generated image $image_url = $response.result.data[0].url # extract image URL from response $generated_image = Invoke-WebRequest -Uri $image_url -OutFile $image_path # download the image return $image_path
重要
針對生產環境,請使用儲存和存取認證的安全方式,例如搭配 Azure Key Vault 的 PowerShell 祕密管理。 如需有關認證安全性的詳細資訊,請參閱 Azure AI 服務安全性一文。
使用 PowerShell 執行指令碼:
./quickstart.ps1
指令碼會迴圈直到產生的映射就緒為止。
輸出
PowerShell 會向 Azure OpenAI 要求影像,並將輸出影像儲存在您指定目錄的 generated_image.png 檔案中。 為了方便起見,該檔案的完整路徑會在指令碼結尾傳回。
影像產生 API 隨附內容仲裁篩選器。 如果服務將提示辨識為有害內容,則它就不會產生影像。 如需詳細資訊,請參閱內容篩選。
清除資源
如果您想要清除和移除 Azure OpenAI 資源,則可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。
下一步
- 透過 DALL-E 操作指南更深入地探索影像生成 API。
- 請嘗試 Azure OpenAI 範例 GitHub 存放庫中的範例。