skip file selection if there is only 1 image.

This commit is contained in:
Haiping Chen 2025-10-09 17:23:51 -05:00
parent a75c0a097f
commit ff2b1da2d9
6 changed files with 16 additions and 12 deletions

View file

@ -49,7 +49,7 @@ public partial class FileInstructService
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 partial class FileInstructService
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 partial class FileInstructService
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);

View file

@ -80,6 +80,10 @@ public partial class FileInstructService
{
return res;
}
else if (files.Count() == 1)
{
return files;
}
var agentService = _services.GetRequiredService<IAgentService>();
var llmProviderService = _services.GetRequiredService<ILlmProviderService>();
@ -115,7 +119,7 @@ public partial class FileInstructService
}).ToList();
var agentId = !string.IsNullOrWhiteSpace(options.AgentId) ? options.AgentId : BuiltInAgentId.FileAssistant;
var template = !string.IsNullOrWhiteSpace(options.Template) ? options.Template : "select_chat_file_instruction";
var template = !string.IsNullOrWhiteSpace(options.Template) ? options.Template : "select-chat-file_instruction";
var prompt = db.GetAgentTemplate(agentId, template);
var data = new Dictionary<string, object>

View file

@ -213,7 +213,7 @@ public class CompletionProvider
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))
{

View file

@ -137,7 +137,7 @@ public class EditImageFn : IFunctionCallback
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 @@ public class EditImageFn : IFunctionCallback
}
provider = "openai";
model = "gpt-image-1";
model = "gpt-image-1-mini";
return (provider, model);
}

View file

@ -101,7 +101,7 @@ public class GenerateImageFn : IFunctionCallback
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 @@ public class GenerateImageFn : IFunctionCallback
}
provider = "openai";
model = "gpt-image-1";
model = "gpt-image-1-mini";
return (provider, model);
}

View file

@ -21,11 +21,11 @@ internal static class AiResponseHelper
internal static async Task<string> 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;