From b402aa9e919dac3e82672f0a9f630d5721a74346 Mon Sep 17 00:00:00 2001 From: hchen2020 <101423@smsassist.com> Date: Sun, 20 Aug 2023 15:33:35 -0500 Subject: [PATCH] Support rich content in UI. --- .../Settings/ConversationSetting.cs | 1 + .../Providers/ChatCompletionProvider.cs | 28 +++++++++++-------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/Infrastructure/BotSharp.Abstraction/Conversations/Settings/ConversationSetting.cs b/src/Infrastructure/BotSharp.Abstraction/Conversations/Settings/ConversationSetting.cs index 48e81061..80897657 100644 --- a/src/Infrastructure/BotSharp.Abstraction/Conversations/Settings/ConversationSetting.cs +++ b/src/Infrastructure/BotSharp.Abstraction/Conversations/Settings/ConversationSetting.cs @@ -5,4 +5,5 @@ public class ConversationSetting public string DataDir { get; set; } public string ChatCompletion { get; set; } public bool EnableKnowledgeBase { get; set; } + public bool ShowVerboseLog { get; set; } } diff --git a/src/Plugins/BotSharp.Plugin.AzureOpenAI/Providers/ChatCompletionProvider.cs b/src/Plugins/BotSharp.Plugin.AzureOpenAI/Providers/ChatCompletionProvider.cs index 932c3e3b..33166ac8 100644 --- a/src/Plugins/BotSharp.Plugin.AzureOpenAI/Providers/ChatCompletionProvider.cs +++ b/src/Plugins/BotSharp.Plugin.AzureOpenAI/Providers/ChatCompletionProvider.cs @@ -3,9 +3,11 @@ using Azure.AI.OpenAI; using BotSharp.Abstraction.Agents.Enums; using BotSharp.Abstraction.Agents.Models; using BotSharp.Abstraction.Conversations.Models; +using BotSharp.Abstraction.Conversations.Settings; using BotSharp.Abstraction.Functions.Models; using BotSharp.Abstraction.MLTasks; using BotSharp.Plugin.AzureOpenAI.Settings; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; @@ -18,12 +20,16 @@ namespace BotSharp.Plugin.AzureOpenAI.Providers; public class ChatCompletionProvider : IChatCompletion { private readonly AzureOpenAiSettings _settings; + private readonly IServiceProvider _services; private readonly ILogger _logger; - public ChatCompletionProvider(AzureOpenAiSettings settings, ILogger logger) + public ChatCompletionProvider(AzureOpenAiSettings settings, + ILogger logger, + IServiceProvider services) { _settings = settings; _logger = logger; + _services = services; } private OpenAIClient GetClient() @@ -215,18 +221,18 @@ public class ChatCompletionProvider : IChatCompletion chatCompletionsOptions.Temperature = 0.5f; chatCompletionsOptions.NucleusSamplingFactor = 0.5f; - var verbose = string.Join("\n", chatCompletionsOptions.Messages.Select(x => + var convSetting = _services.GetRequiredService(); + if (convSetting.ShowVerboseLog) { - if (x.Role == ChatRole.Function) + var verbose = string.Join("\n", chatCompletionsOptions.Messages.Select(x => { - return $"{x.Role}: {x.Name} {x.Content}"; - } - else - { - return $"{x.Role}: {x.Content}"; - } - })); - _logger.LogInformation(verbose); + return x.Role == ChatRole.Function ? + $"{x.Role}: {x.Name} {x.Content}" : + $"{x.Role}: {x.Content}"; + })); + _logger.LogInformation(verbose); + } + return chatCompletionsOptions; } }