From 58c7f3303a12e85861bceb136f0a8b91a54131e7 Mon Sep 17 00:00:00 2001 From: nightcityblade Date: Sat, 3 Oct 2026 11:32:41 +0800 Subject: [PATCH] .Net: Update default OpenAI image model --- .../Services/OpenAITextToImageServiceTests.cs | 10 ++++++---- .../Connectors.OpenAI/Core/ClientCore.TextToImage.cs | 4 ++-- .../Services/OpenAITextToImageService.cs | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/dotnet/src/Connectors/Connectors.OpenAI.UnitTests/Services/OpenAITextToImageServiceTests.cs b/dotnet/src/Connectors/Connectors.OpenAI.UnitTests/Services/OpenAITextToImageServiceTests.cs index bd40dfe997a3..2bcbc02f4425 100644 --- a/dotnet/src/Connectors/Connectors.OpenAI.UnitTests/Services/OpenAITextToImageServiceTests.cs +++ b/dotnet/src/Connectors/Connectors.OpenAI.UnitTests/Services/OpenAITextToImageServiceTests.cs @@ -37,16 +37,18 @@ public OpenAITextToImageServiceTests() this._mockLoggerFactory = new Mock(); } - [Fact] - public void ConstructorWorksCorrectly() + [Theory] + [InlineData(null, "gpt-image-2")] + [InlineData("model", "model")] + public void ConstructorWorksCorrectly(string? modelId, string expectedModelId) { // Arrange & Act - var sut = new OpenAITextToImageService("apiKey", "organization", "model"); + var sut = new OpenAITextToImageService("apiKey", "organization", modelId); // Assert Assert.NotNull(sut); Assert.Equal("organization", sut.Attributes[ClientCore.OrganizationKey]); - Assert.Equal("model", sut.Attributes[AIServiceExtensions.ModelIdKey]); + Assert.Equal(expectedModelId, sut.Attributes[AIServiceExtensions.ModelIdKey]); } [Theory] diff --git a/dotnet/src/Connectors/Connectors.OpenAI/Core/ClientCore.TextToImage.cs b/dotnet/src/Connectors/Connectors.OpenAI/Core/ClientCore.TextToImage.cs index 049f31b8c883..2f332673cd5f 100644 --- a/dotnet/src/Connectors/Connectors.OpenAI/Core/ClientCore.TextToImage.cs +++ b/dotnet/src/Connectors/Connectors.OpenAI/Core/ClientCore.TextToImage.cs @@ -40,8 +40,8 @@ internal async Task GenerateImageAsync( }; // The model is not required by the OpenAI API and defaults to the DALL-E 2 server-side - https://platform.openai.com/docs/api-reference/images/create#images-create-model. - // However, considering that the model is required by the OpenAI SDK and the ModelId property is optional, it defaults to gpt-image-1 in the line below. - targetModel = string.IsNullOrEmpty(targetModel) ? "gpt-image-1" : targetModel!; + // However, considering that the model is required by the OpenAI SDK and the ModelId property is optional, it defaults to gpt-image-2 in the line below. + targetModel = string.IsNullOrEmpty(targetModel) ? "gpt-image-2" : targetModel!; ClientResult response = await RunRequestAsync(() => this.Client!.GetImageClient(targetModel).GenerateImageAsync(prompt, imageOptions, cancellationToken)).ConfigureAwait(false); var generatedImage = response.Value; diff --git a/dotnet/src/Connectors/Connectors.OpenAI/Services/OpenAITextToImageService.cs b/dotnet/src/Connectors/Connectors.OpenAI/Services/OpenAITextToImageService.cs index 9e3dce140102..8ae2ce6bcdf4 100644 --- a/dotnet/src/Connectors/Connectors.OpenAI/Services/OpenAITextToImageService.cs +++ b/dotnet/src/Connectors/Connectors.OpenAI/Services/OpenAITextToImageService.cs @@ -36,7 +36,7 @@ public OpenAITextToImageService( HttpClient? httpClient = null, ILoggerFactory? loggerFactory = null) { - this._client = new(modelId ?? "gpt-image-1", apiKey, organization, null, httpClient, loggerFactory?.CreateLogger(this.GetType())); + this._client = new(modelId ?? "gpt-image-2", apiKey, organization, null, httpClient, loggerFactory?.CreateLogger(this.GetType())); } ///