Azure OpenAI Serviceを試しているのですが、以下のページのDALL-E 3を使うC#のサンプルコードが動かなかったので、2024年2月25日現在で動かした手順を載せておきます。フィードバック済みです。
まず前提条件が足りていません。DALL-E 3モデルをデプロイしておく必要があるのですが、このためにはOpenAI serviceリソースをSweden Centralに作成しておく必要があります*1。
OpenAI serviceを作成したら、ドキュメントの手順通りエンドポイントとキーをメモっておきます。
次にAzure OpenAI Studioに移動して、管理>デプロイメニューを開きます。ここで、dall-e-3 モデルのモデルがデプロイされていることを確認します。自分は最初からデプロイされていましたが、ない場合は新規にデプロイすればよいと思われます。ここで、デプロイ名をメモっておきます。
そして動いたサンプルコードは以下の通りです。
using Azure.AI.OpenAI; using Azure; var endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT"); var key = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY"); OpenAIClient client = new(new Uri(endpoint), new AzureKeyCredential(key)); var imageGenerations = await client.GetImageGenerationsAsync( new ImageGenerationOptions() { Prompt = "a happy monkey eating a banana, in watercolor", Size = ImageSize.Size1024x1024, DeploymentName = "Dalle3" }); // Image Generations responses provide URLs you can use to retrieve requested images Uri imageUri = imageGenerations.Value.Data[0].Url; // Print the image URI to console: Console.WriteLine(imageUri);
Environment.GetEnvironmentVariable
でないと動かないのは比較的わかりやすいですが、ImageGenerationOptions のプロパティに DeploymentName
が指定されていないと例外がスローされます。値は先ほどメモっておいたdall-e-3モデルのデプロイ名です。また自分が試したときは Sizeプロパティが ImageSize.Size256x256
だとエラーになりました。
以上の手順でドキュメント通り、生成された画像のURLが表示されました。
*1:もしかしたらこのドキュメントはDALL-E 2向けかもしれませんが、いずれにせよこのドキュメントのままでは動きませんでした