diff --git a/src/Infrastructure/BotSharp.Core/Files/Functions/GenerateImageFn.cs b/src/Infrastructure/BotSharp.Core/Files/Functions/GenerateImageFn.cs index b7d89b36..eb9a49e3 100644 --- a/src/Infrastructure/BotSharp.Core/Files/Functions/GenerateImageFn.cs +++ b/src/Infrastructure/BotSharp.Core/Files/Functions/GenerateImageFn.cs @@ -1,5 +1,4 @@ using BotSharp.Abstraction.Functions; -using System.Net.Http; namespace BotSharp.Core.Files.Functions; @@ -55,11 +54,8 @@ public class GenerateImageFn : IFunctionCallback private void SetImageOptions() { var state = _services.GetRequiredService(); - var size = state.SetState("image_size", "1024x1024"); - var quality = state.SetState("image_quality", "standard"); - var style = state.SetState("image_style", "natural"); - var format = state.SetState("image_format", "bytes"); - var count = state.SetState("image_count", "1"); + state.SetState("image_format", "bytes"); + state.SetState("image_count", "1"); } private async Task GetImageGeneration(Agent agent, RoleDialogModel message, string? description) @@ -70,7 +66,7 @@ public class GenerateImageFn : IFunctionCallback var text = !string.IsNullOrWhiteSpace(description) ? description : message.Content; var dialog = RoleDialogModel.From(message, AgentRole.User, text); var result = await completion.GetImageGeneration(agent, new List { dialog }); - await SaveGeneratedImages(result?.GeneratedImages); + SaveGeneratedImages(result?.GeneratedImages); return result?.Content ?? string.Empty; } catch (Exception ex) @@ -81,40 +77,27 @@ public class GenerateImageFn : IFunctionCallback } } - private async Task SaveGeneratedImages(List? images) + private void SaveGeneratedImages(List? images) { if (images.IsNullOrEmpty()) return; var files = new List(); foreach (var image in images) { - if (string.IsNullOrEmpty(image?.ImageUrl) - && string.IsNullOrEmpty(image?.ImageData)) + if (string.IsNullOrEmpty(image?.ImageData)) { continue; } try { - var data = image.ImageData; - if (!string.IsNullOrEmpty(image.ImageUrl)) - { - var http = _services.GetRequiredService(); - using var client = http.CreateClient(); - var bytes = await client.GetByteArrayAsync(image.ImageUrl); - data = Convert.ToBase64String(bytes); - } - - if (!string.IsNullOrEmpty(data)) - { - var imageName = $"{Guid.NewGuid().ToString()}.png"; - var imageData = $"data:image/png;base64,{data}"; - files.Add(new BotSharpFile { FileName = imageName, FileData = imageData }); - } + var name = $"{Guid.NewGuid()}.png"; + var data = $"data:image/png;base64,{image.ImageData}"; + files.Add(new BotSharpFile { FileName = name, FileData = data }); } catch (Exception ex) { - _logger.LogWarning($"Error when saving generated image: {image.ImageUrl ?? image.ImageData}\r\n{ex.Message}"); + _logger.LogWarning($"Error when saving generated image: {image.ImageData}\r\n{ex.Message}"); continue; } } diff --git a/src/Plugins/BotSharp.Plugin.SparkDesk/Providers/ChatCompletionProvider.cs b/src/Plugins/BotSharp.Plugin.SparkDesk/Providers/ChatCompletionProvider.cs index c4556c36..d15345e6 100644 --- a/src/Plugins/BotSharp.Plugin.SparkDesk/Providers/ChatCompletionProvider.cs +++ b/src/Plugins/BotSharp.Plugin.SparkDesk/Providers/ChatCompletionProvider.cs @@ -20,7 +20,7 @@ public class ChatCompletionProvider : IChatCompletion _services = services; _settings = settings; _logger = logger; - _model = $"general{settings.ModelVersion.ToString()}"; + _model = $"general{settings.ModelVersion}"; }