From ff2b1da2d9d59630fbe76db020a9bfae672857ec Mon Sep 17 00:00:00 2001 From: Haiping Chen Date: Thu, 9 Oct 2025 17:23:51 -0500 Subject: [PATCH] skip file selection if there is only 1 image. --- .../Files/Services/Instruct/FileInstructService.Image.cs | 6 +++--- .../Services/Instruct/FileInstructService.SelectFile.cs | 6 +++++- .../BotSharp.Core/Infrastructures/CompletionProvider.cs | 2 +- .../BotSharp.Plugin.FileHandler/Functions/EditImageFn.cs | 4 ++-- .../Functions/GenerateImageFn.cs | 4 ++-- .../BotSharp.Plugin.FileHandler/Helpers/AiResponseHelper.cs | 6 +++--- 6 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/Infrastructure/BotSharp.Core/Files/Services/Instruct/FileInstructService.Image.cs b/src/Infrastructure/BotSharp.Core/Files/Services/Instruct/FileInstructService.Image.cs index b43f9b613..a58813eee 100644 --- a/src/Infrastructure/BotSharp.Core/Files/Services/Instruct/FileInstructService.Image.cs +++ b/src/Infrastructure/BotSharp.Core/Files/Services/Instruct/FileInstructService.Image.cs @@ -49,7 +49,7 @@ public async Task GenerateImage(string text, InstructOptions? o var instruction = await GetAgentTemplate(innerAgentId, options?.TemplateName); var textContent = text.IfNullOrEmptyAs(instruction).IfNullOrEmptyAs(string.Empty); - var completion = CompletionProvider.GetImageCompletion(_services, provider: options?.Provider ?? "openai", model: options?.Model ?? "gpt-image-1"); + var completion = CompletionProvider.GetImageCompletion(_services, provider: options?.Provider ?? "openai", model: options?.Model ?? "gpt-image-1-mini"); var message = await completion.GetImageGeneration(new Agent() { Id = innerAgentId, @@ -124,7 +124,7 @@ public async Task EditImage(string text, InstructFileModel imag var innerAgentId = options?.AgentId ?? Guid.Empty.ToString(); var instruction = await GetAgentTemplate(innerAgentId, options?.TemplateName); - var completion = CompletionProvider.GetImageCompletion(_services, provider: options?.Provider ?? "openai", model: options?.Model ?? "gpt-image-1"); + var completion = CompletionProvider.GetImageCompletion(_services, provider: options?.Provider ?? "openai", model: options?.Model ?? "gpt-image-1-mini"); var binary = await DownloadFile(image); // Convert image @@ -173,7 +173,7 @@ public async Task EditImage(string text, InstructFileModel imag var innerAgentId = options?.AgentId ?? Guid.Empty.ToString(); var instruction = await GetAgentTemplate(innerAgentId, options?.TemplateName); - var completion = CompletionProvider.GetImageCompletion(_services, provider: options?.Provider ?? "openai", model: options?.Model ?? "gpt-image-1"); + var completion = CompletionProvider.GetImageCompletion(_services, provider: options?.Provider ?? "openai", model: options?.Model ?? "gpt-image-1-mini"); var imageBinary = await DownloadFile(image); var maskBinary = await DownloadFile(mask); diff --git a/src/Infrastructure/BotSharp.Core/Files/Services/Instruct/FileInstructService.SelectFile.cs b/src/Infrastructure/BotSharp.Core/Files/Services/Instruct/FileInstructService.SelectFile.cs index 3b0b724a7..65ea5705b 100644 --- a/src/Infrastructure/BotSharp.Core/Files/Services/Instruct/FileInstructService.SelectFile.cs +++ b/src/Infrastructure/BotSharp.Core/Files/Services/Instruct/FileInstructService.SelectFile.cs @@ -80,6 +80,10 @@ private async Task> SelectFiles(IEnumerable(); var llmProviderService = _services.GetRequiredService(); @@ -115,7 +119,7 @@ private async Task> SelectFiles(IEnumerable diff --git a/src/Infrastructure/BotSharp.Core/Infrastructures/CompletionProvider.cs b/src/Infrastructure/BotSharp.Core/Infrastructures/CompletionProvider.cs index ed99e0dd4..60645bcf2 100644 --- a/src/Infrastructure/BotSharp.Core/Infrastructures/CompletionProvider.cs +++ b/src/Infrastructure/BotSharp.Core/Infrastructures/CompletionProvider.cs @@ -213,7 +213,7 @@ private static (string, string) GetProviderAndModel(IServiceProvider services, model = agentConfig?.Model ?? agentSetting.LlmConfig?.Model; if (state.ContainsState("model")) { - model = state.GetState("model", model ?? "gpt-image-1"); + model = state.GetState("model", model ?? "gpt-image-1-mini"); } else if (state.ContainsState("model_id") || !string.IsNullOrEmpty(modelId)) { diff --git a/src/Plugins/BotSharp.Plugin.FileHandler/Functions/EditImageFn.cs b/src/Plugins/BotSharp.Plugin.FileHandler/Functions/EditImageFn.cs index 670261ac7..9d7521ac2 100644 --- a/src/Plugins/BotSharp.Plugin.FileHandler/Functions/EditImageFn.cs +++ b/src/Plugins/BotSharp.Plugin.FileHandler/Functions/EditImageFn.cs @@ -137,7 +137,7 @@ private async Task GetImageEditResponse(string description, string? defa LlmConfig = new AgentLlmConfig { Provider = llmConfig?.Provider ?? "openai", - Model = llmConfig?.Model ?? "gpt-4o-mini", + Model = llmConfig?.Model ?? "gpt-5-mini", MaxOutputTokens = llmConfig?.MaxOutputTokens, ReasoningEffortLevel = llmConfig?.ReasoningEffortLevel } @@ -168,7 +168,7 @@ private async Task GetImageEditResponse(string description, string? defa } provider = "openai"; - model = "gpt-image-1"; + model = "gpt-image-1-mini"; return (provider, model); } diff --git a/src/Plugins/BotSharp.Plugin.FileHandler/Functions/GenerateImageFn.cs b/src/Plugins/BotSharp.Plugin.FileHandler/Functions/GenerateImageFn.cs index 33fa8e81f..132b18617 100644 --- a/src/Plugins/BotSharp.Plugin.FileHandler/Functions/GenerateImageFn.cs +++ b/src/Plugins/BotSharp.Plugin.FileHandler/Functions/GenerateImageFn.cs @@ -101,7 +101,7 @@ private async Task GetImageGenerationResponse(string description, string LlmConfig = new AgentLlmConfig { Provider = llmConfig?.Provider ?? "openai", - Model = llmConfig?.Model ?? "gpt-4o-mini", + Model = llmConfig?.Model ?? "gpt-5-mini", MaxOutputTokens = llmConfig?.MaxOutputTokens, ReasoningEffortLevel = llmConfig?.ReasoningEffortLevel } @@ -132,7 +132,7 @@ private async Task GetImageGenerationResponse(string description, string } provider = "openai"; - model = "gpt-image-1"; + model = "gpt-image-1-mini"; return (provider, model); } diff --git a/src/Plugins/BotSharp.Plugin.FileHandler/Helpers/AiResponseHelper.cs b/src/Plugins/BotSharp.Plugin.FileHandler/Helpers/AiResponseHelper.cs index 6937c6572..a45db570f 100644 --- a/src/Plugins/BotSharp.Plugin.FileHandler/Helpers/AiResponseHelper.cs +++ b/src/Plugins/BotSharp.Plugin.FileHandler/Helpers/AiResponseHelper.cs @@ -21,11 +21,11 @@ internal static string GetDefaultResponse(IEnumerable files) internal static async Task GetImageGenerationResponse(IServiceProvider services, Agent agent, string description) { - var text = $"Please generate a user-friendly response from the following description to " + - $"inform user that you have completed the required image: {description}"; + var text = $"Please generate a user-friendly and short response from the following description to " + + $"inform user that the required image is generated : {description}"; var provider = agent?.LlmConfig?.Provider ?? "openai"; - var model = agent?.LlmConfig?.Model ?? "gpt-4o-mini"; + var model = agent?.LlmConfig?.Model ?? "gpt-5-mini"; var completion = CompletionProvider.GetChatCompletion(services, provider: provider, model: model); var response = await completion.GetChatCompletions(agent, [new RoleDialogModel(AgentRole.User, text)]); return response.Content;