diff --git a/src/Plugins/BotSharp.Plugin.AzureOpenAI/AzureOpenAiPlugin.cs b/src/Plugins/BotSharp.Plugin.AzureOpenAI/AzureOpenAiPlugin.cs index fb04f961..1047ceac 100644 --- a/src/Plugins/BotSharp.Plugin.AzureOpenAI/AzureOpenAiPlugin.cs +++ b/src/Plugins/BotSharp.Plugin.AzureOpenAI/AzureOpenAiPlugin.cs @@ -1,10 +1,7 @@ -using BotSharp.Abstraction.MLTasks; using BotSharp.Abstraction.Plugins; using BotSharp.Abstraction.Settings; using BotSharp.Plugin.AzureOpenAI.Providers; -using BotSharp.Plugin.AzureOpenAI.Settings; using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; namespace BotSharp.Platform.AzureAi; diff --git a/src/Plugins/BotSharp.Plugin.AzureOpenAI/BotSharp.Plugin.AzureOpenAI.csproj b/src/Plugins/BotSharp.Plugin.AzureOpenAI/BotSharp.Plugin.AzureOpenAI.csproj index 8452774b..9d500ad7 100644 --- a/src/Plugins/BotSharp.Plugin.AzureOpenAI/BotSharp.Plugin.AzureOpenAI.csproj +++ b/src/Plugins/BotSharp.Plugin.AzureOpenAI/BotSharp.Plugin.AzureOpenAI.csproj @@ -1,7 +1,7 @@ - netstandard2.1 + net8.0 enable $(LangVersion) $(BotSharpVersion) diff --git a/src/Plugins/BotSharp.Plugin.AzureOpenAI/Providers/ChatCompletionProvider.cs b/src/Plugins/BotSharp.Plugin.AzureOpenAI/Providers/ChatCompletionProvider.cs index d526f9f9..bd50f0e3 100644 --- a/src/Plugins/BotSharp.Plugin.AzureOpenAI/Providers/ChatCompletionProvider.cs +++ b/src/Plugins/BotSharp.Plugin.AzureOpenAI/Providers/ChatCompletionProvider.cs @@ -253,7 +253,8 @@ public class ChatCompletionProvider : IChatCompletion else if (message.Role == AgentRole.User) { var text = !string.IsNullOrWhiteSpace(message.Payload) ? message.Payload : message.Content; - var chat = new UserChatMessage(text) + var textPart = ChatMessageContentPart.CreateTextMessageContentPart(text); + var chat = new UserChatMessage(textPart) { ParticipantName = message.FunctionName }; @@ -268,20 +269,20 @@ public class ChatCompletionProvider : IChatCompletion { var uri = new Uri(file.FileUrl); var contentPart = ChatMessageContentPart.CreateImageMessageContentPart(uri, ImageChatMessageContentPartDetail.Low); - chat = new UserChatMessage(contentPart, text); + chat = new UserChatMessage(textPart, contentPart); } else if (!string.IsNullOrEmpty(file.FileData)) { var (contentType, bytes) = fileService.GetFileInfoFromData(file.FileData); var contentPart = ChatMessageContentPart.CreateImageMessageContentPart(BinaryData.FromBytes(bytes), contentType, ImageChatMessageContentPartDetail.Low); - chat = new UserChatMessage(contentPart, text); + chat = new UserChatMessage(textPart, contentPart); } else if (!string.IsNullOrEmpty(file.FileStorageUrl)) { var contentType = fileService.GetFileContentType(file.FileStorageUrl); using var stream = File.OpenRead(file.FileStorageUrl); var contentPart = ChatMessageContentPart.CreateImageMessageContentPart(BinaryData.FromStream(stream), contentType, ImageChatMessageContentPartDetail.Low); - chat = new UserChatMessage(contentPart, text); + chat = new UserChatMessage(textPart, contentPart); } } } diff --git a/src/Plugins/BotSharp.Plugin.AzureOpenAI/Providers/ImageGenerationProvider.cs b/src/Plugins/BotSharp.Plugin.AzureOpenAI/Providers/ImageGenerationProvider.cs index 94fe9743..440224df 100644 --- a/src/Plugins/BotSharp.Plugin.AzureOpenAI/Providers/ImageGenerationProvider.cs +++ b/src/Plugins/BotSharp.Plugin.AzureOpenAI/Providers/ImageGenerationProvider.cs @@ -37,29 +37,20 @@ public class ImageGenerationProvider : IImageGeneration var (prompt, options) = PrepareOptions(conversations); var imageClient = client.GetImageClient(_model); - ImageGenerationOptions myoptions = new() - { - Quality = GeneratedImageQuality.High, - Size = GeneratedImageSize.W1792xH1024, - Style = GeneratedImageStyle.Vivid, - ResponseFormat = GeneratedImageFormat.Bytes - }; - - var response = imageClient.GenerateImage(prompt, myoptions); - var imageUri = response.Value.ImageUri; - var revisedPrompt = response.Value.RevisedPrompt; + var response = imageClient.GenerateImage(prompt, options); + var value = response.Value; var content = string.Empty; - if (!string.IsNullOrEmpty(revisedPrompt)) + if (!string.IsNullOrEmpty(value.RevisedPrompt)) { - content = revisedPrompt; + content = value.RevisedPrompt; } var responseMessage = new RoleDialogModel(AgentRole.Assistant, content) { CurrentAgentId = agent.Id, MessageId = conversations.LastOrDefault()?.MessageId ?? string.Empty, - Data = imageUri.AbsoluteUri + Data = options.ResponseFormat == GeneratedImageFormat.Uri ? value.ImageUri?.AbsoluteUri : value.ImageBytes }; // After @@ -89,10 +80,10 @@ public class ImageGenerationProvider : IImageGeneration var options = new ImageGenerationOptions { - //Size = GetImageSize(size), - //Quality = GetImageQuality(quality), - //Style = GetImageStyle(style), - //ResponseFormat = GeneratedImageFormat.Uri + Size = GetImageSize(size), + Quality = GetImageQuality(quality), + Style = GetImageStyle(style), + ResponseFormat = GeneratedImageFormat.Uri }; return (prompt, options); }