diff --git a/src/Infrastructure/BotSharp.Abstraction/MLTasks/Settings/LlmModelSetting.cs b/src/Infrastructure/BotSharp.Abstraction/MLTasks/Settings/LlmModelSetting.cs index 07fbe63b7..53e788471 100644 --- a/src/Infrastructure/BotSharp.Abstraction/MLTasks/Settings/LlmModelSetting.cs +++ b/src/Infrastructure/BotSharp.Abstraction/MLTasks/Settings/LlmModelSetting.cs @@ -2,6 +2,7 @@ namespace BotSharp.Abstraction.MLTasks.Settings; public class LlmModelSetting { + public string Id { get; set; } public string Name { get; set; } public string ApiKey { get; set; } public string Endpoint { get; set; } diff --git a/src/Plugins/BotSharp.Plugin.ChatbotUI/ChatbotUiController.cs b/src/Plugins/BotSharp.Plugin.ChatbotUI/ChatbotUiController.cs index 9c422a7a2..4dbf304d2 100644 --- a/src/Plugins/BotSharp.Plugin.ChatbotUI/ChatbotUiController.cs +++ b/src/Plugins/BotSharp.Plugin.ChatbotUI/ChatbotUiController.cs @@ -16,6 +16,8 @@ using BotSharp.Abstraction.Conversations.Models; using Microsoft.AspNetCore.Authorization; using BotSharp.Abstraction.Agents.Enums; +using BotSharp.Abstraction.MLTasks; +using BotSharp.Abstraction.MLTasks.Settings; namespace BotSharp.Plugin.ChatbotUI.Controllers; @@ -35,27 +37,18 @@ public ChatbotUiController(ILogger logger, IServiceProvider [HttpGet("/v1/models")] public OpenAiModels GetOpenAiModels() { + var llm = _services.GetRequiredService(); + var models = llm.GetProviderModels("azure-openai").Where(x => x.Type == LlmModelType.Chat) + .Select(x => new AiModel + { + Id = x.Id, + Model = x.Name, + Name = x.Name + }).ToList(); + return new OpenAiModels { - Data = new List - { - new AiModel - { - Id = "gpt-3.5-turbo", - Model = "gpt-3.5-turbo", - Name = "GPT-3.5 Turbo", - MaxLength = 4 * 1024, - TokenLimit = 4 * 1024 - }, - new AiModel - { - Id = "gpt-4", - Model = "gpt-4", - Name = "GPT-4", - MaxLength = 8 * 1024, - TokenLimit = 8 * 1024 - } - } + Data = models, }; } @@ -73,11 +66,16 @@ public async Task SendMessage([FromBody] OpenAiMessageInput input) .Select(x => new RoleDialogModel(x.Role, x.Content)) .Last(); + var llm = _services.GetRequiredService(); + var model = llm.GetProviderModels("azure-openai") + .First(x => x.Type == LlmModelType.Chat && x.Id == input.Model) + .Name; + var conv = _services.GetRequiredService(); conv.SetConversationId(input.ConversationId, input.States); conv.States.SetState("channel", input.Channel) - .SetState("provider", input.Provider) - .SetState("model", input.Model) + .SetState("provider", "azure-openai") + .SetState("model", model) .SetState("temperature", input.Temperature) .SetState("sampling_factor", input.SamplingFactor);