diff --git a/src/Infrastructure/BotSharp.Abstraction/Realtime/Models/RealtimeHubConnection.cs b/src/Infrastructure/BotSharp.Abstraction/Realtime/Models/RealtimeHubConnection.cs index 9fa3ee3b..362e61bf 100644 --- a/src/Infrastructure/BotSharp.Abstraction/Realtime/Models/RealtimeHubConnection.cs +++ b/src/Infrastructure/BotSharp.Abstraction/Realtime/Models/RealtimeHubConnection.cs @@ -14,7 +14,6 @@ public class RealtimeHubConnection public string CurrentAgentId { get; set; } = null!; public string ConversationId { get; set; } = null!; public string Data { get; set; } = string.Empty; - public string Model { get; set; } = null!; public Func OnModelMessageReceived { get; set; } = null!; public Func OnModelAudioResponseDone { get; set; } = null!; public Func OnModelUserInterrupted { get; set; } = null!; diff --git a/src/Infrastructure/BotSharp.Core.Realtime/Services/RealtimeHub.cs b/src/Infrastructure/BotSharp.Core.Realtime/Services/RealtimeHub.cs index 497730c0..4cebb5b3 100644 --- a/src/Infrastructure/BotSharp.Core.Realtime/Services/RealtimeHub.cs +++ b/src/Infrastructure/BotSharp.Core.Realtime/Services/RealtimeHub.cs @@ -1,5 +1,4 @@ using BotSharp.Abstraction.Functions.Models; -using BotSharp.Abstraction.MLTasks.Settings; using BotSharp.Abstraction.Options; using BotSharp.Core.Infrastructures; @@ -77,17 +76,6 @@ public class RealtimeHub : IRealtimeHub var agent = await agentService.LoadAgent(conversation.AgentId); _conn.CurrentAgentId = agent.Id; - // Set model - var model = "gpt-4o-mini-realtime"; - if (agent.Profiles.Contains("realtime")) - { - var llmProviderService = _services.GetRequiredService(); - model = llmProviderService.GetProviderModel("openai", "gpt-4o", modelType: LlmModelType.Realtime).Name; - } - - _completer.SetModelName(model); - _conn.Model = model; - var routing = _services.GetRequiredService(); routing.Context.Push(agent.Id); diff --git a/src/Plugins/BotSharp.Plugin.OpenAI/BotSharp.Plugin.OpenAI.csproj b/src/Plugins/BotSharp.Plugin.OpenAI/BotSharp.Plugin.OpenAI.csproj index fb8af0d3..8b817fbc 100644 --- a/src/Plugins/BotSharp.Plugin.OpenAI/BotSharp.Plugin.OpenAI.csproj +++ b/src/Plugins/BotSharp.Plugin.OpenAI/BotSharp.Plugin.OpenAI.csproj @@ -12,8 +12,6 @@ - - diff --git a/src/Plugins/BotSharp.Plugin.OpenAI/Models/Realtime/RealtimeSessionBody.cs b/src/Plugins/BotSharp.Plugin.OpenAI/Models/Realtime/RealtimeSessionBody.cs index aeaaab63..bc2d5c4f 100644 --- a/src/Plugins/BotSharp.Plugin.OpenAI/Models/Realtime/RealtimeSessionBody.cs +++ b/src/Plugins/BotSharp.Plugin.OpenAI/Models/Realtime/RealtimeSessionBody.cs @@ -1,5 +1,3 @@ -using BotSharp.Abstraction.Functions.Models; - namespace BotSharp.Plugin.OpenAI.Models.Realtime; public class RealtimeSessionBody diff --git a/src/Plugins/BotSharp.Plugin.OpenAI/Models/Realtime/RealtimeSessionRequest.cs b/src/Plugins/BotSharp.Plugin.OpenAI/Models/Realtime/RealtimeSessionRequest.cs index cabf3d30..f5eef2f0 100644 --- a/src/Plugins/BotSharp.Plugin.OpenAI/Models/Realtime/RealtimeSessionRequest.cs +++ b/src/Plugins/BotSharp.Plugin.OpenAI/Models/Realtime/RealtimeSessionRequest.cs @@ -1,5 +1,3 @@ -using BotSharp.Abstraction.Functions.Models; - namespace BotSharp.Plugin.OpenAI.Models.Realtime; public class RealtimeSessionCreationRequest diff --git a/src/Plugins/BotSharp.Plugin.OpenAI/Models/Realtime/RealtimeSessionUpdate.cs b/src/Plugins/BotSharp.Plugin.OpenAI/Models/Realtime/RealtimeSessionUpdate.cs index a89928d8..395385d6 100644 --- a/src/Plugins/BotSharp.Plugin.OpenAI/Models/Realtime/RealtimeSessionUpdate.cs +++ b/src/Plugins/BotSharp.Plugin.OpenAI/Models/Realtime/RealtimeSessionUpdate.cs @@ -1,5 +1,3 @@ -using BotSharp.Abstraction.Realtime.Models; - namespace BotSharp.Plugin.OpenAI.Models.Realtime; public class RealtimeSessionUpdate diff --git a/src/Plugins/BotSharp.Plugin.OpenAI/Models/SpeechToTextRequest.cs b/src/Plugins/BotSharp.Plugin.OpenAI/Models/SpeechToTextRequest.cs index cc2fb6d4..4708f14f 100644 --- a/src/Plugins/BotSharp.Plugin.OpenAI/Models/SpeechToTextRequest.cs +++ b/src/Plugins/BotSharp.Plugin.OpenAI/Models/SpeechToTextRequest.cs @@ -1,9 +1,3 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - namespace BotSharp.Plugin.OpenAI.Models; public class SpeechToTextRequest diff --git a/src/Plugins/BotSharp.Plugin.OpenAI/Models/TextCompletionRequest.cs b/src/Plugins/BotSharp.Plugin.OpenAI/Models/TextCompletionRequest.cs index 7ebaadef..1ba0da2c 100644 --- a/src/Plugins/BotSharp.Plugin.OpenAI/Models/TextCompletionRequest.cs +++ b/src/Plugins/BotSharp.Plugin.OpenAI/Models/TextCompletionRequest.cs @@ -1,5 +1,3 @@ -using System.Text.Json.Serialization; - namespace BotSharp.Plugin.OpenAI.Models; public class TextCompletionRequest diff --git a/src/Plugins/BotSharp.Plugin.OpenAI/Models/TextCompletionResponse.cs b/src/Plugins/BotSharp.Plugin.OpenAI/Models/TextCompletionResponse.cs index b3ecb24d..fcbde06a 100644 --- a/src/Plugins/BotSharp.Plugin.OpenAI/Models/TextCompletionResponse.cs +++ b/src/Plugins/BotSharp.Plugin.OpenAI/Models/TextCompletionResponse.cs @@ -1,5 +1,3 @@ -using System.Text.Json.Serialization; - namespace BotSharp.Plugin.OpenAI.Models; public class TextCompletionResponse diff --git a/src/Plugins/BotSharp.Plugin.OpenAI/OpenAiPlugin.cs b/src/Plugins/BotSharp.Plugin.OpenAI/OpenAiPlugin.cs index fe3dae99..daade7a9 100644 --- a/src/Plugins/BotSharp.Plugin.OpenAI/OpenAiPlugin.cs +++ b/src/Plugins/BotSharp.Plugin.OpenAI/OpenAiPlugin.cs @@ -6,7 +6,6 @@ using BotSharp.Plugin.OpenAI.Providers.Text; using BotSharp.Plugin.OpenAI.Providers.Chat; using BotSharp.Plugin.OpenAI.Providers.Audio; using Microsoft.Extensions.Configuration; -using Refit; using BotSharp.Plugin.OpenAI.Providers.Realtime; namespace BotSharp.Plugin.OpenAI; @@ -36,8 +35,5 @@ public class OpenAiPlugin : IBotSharpPlugin services.AddScoped(); services.AddScoped(); services.AddScoped(); - - services.AddRefitClient() - .ConfigureHttpClient(c => c.BaseAddress = new Uri("https://api.openai.com")); } } \ No newline at end of file diff --git a/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Chat/ChatCompletionProvider.cs b/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Chat/ChatCompletionProvider.cs index 7d6bdcea..d13f0709 100644 --- a/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Chat/ChatCompletionProvider.cs +++ b/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Chat/ChatCompletionProvider.cs @@ -1,4 +1,3 @@ -using BotSharp.Abstraction.Files.Utilities; using OpenAI.Chat; namespace BotSharp.Plugin.OpenAI.Providers.Chat; diff --git a/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Realtime/IOpenAiRealtimeApi.cs b/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Realtime/IOpenAiRealtimeApi.cs deleted file mode 100644 index bdf16ea7..00000000 --- a/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Realtime/IOpenAiRealtimeApi.cs +++ /dev/null @@ -1,11 +0,0 @@ -using BotSharp.Abstraction.Realtime.Models; -using BotSharp.Plugin.OpenAI.Models.Realtime; -using Refit; - -namespace BotSharp.Plugin.OpenAI.Providers.Realtime; - -public interface IOpenAiRealtimeApi -{ - [Post("/v1/realtime/sessions")] - Task CreateSessionAsync(RealtimeSessionCreationRequest model, [Authorize("Bearer")] string token); -} diff --git a/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Realtime/RealTimeCompletionProvider.cs b/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Realtime/RealTimeCompletionProvider.cs index d40abe89..da31e946 100644 --- a/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Realtime/RealTimeCompletionProvider.cs +++ b/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Realtime/RealTimeCompletionProvider.cs @@ -1,17 +1,6 @@ -using BotSharp.Abstraction.Conversations.Enums; -using BotSharp.Abstraction.Files.Utilities; -using BotSharp.Abstraction.Functions.Models; -using BotSharp.Abstraction.Options; -using BotSharp.Abstraction.Realtime; -using BotSharp.Abstraction.Realtime.Models; -using BotSharp.Abstraction.Routing; -using BotSharp.Core.Infrastructures; using BotSharp.Plugin.OpenAI.Models.Realtime; using OpenAI.Chat; using System.Net.WebSockets; -using System.Text; -using System.Text.Json; -using System.Threading; namespace BotSharp.Plugin.OpenAI.Providers.Realtime; @@ -27,7 +16,7 @@ public class RealTimeCompletionProvider : IRealTimeCompletion protected readonly IServiceProvider _services; protected readonly ILogger _logger; - protected string _model = "gpt-4o-mini-realtime-preview-2024-12-17"; + protected string _model = "gpt-4o-mini-realtime-preview"; private ClientWebSocket _webSocket; public RealTimeCompletionProvider( @@ -50,14 +39,17 @@ public class RealTimeCompletionProvider : IRealTimeCompletion Action onInputAudioTranscriptionCompleted, Action onUserInterrupted) { + var llmProviderService = _services.GetRequiredService(); + _model = llmProviderService.GetProviderModel("openai", "gpt-4o", modelType: LlmModelType.Realtime).Name; + var settingsService = _services.GetRequiredService(); - var settings = settingsService.GetSetting(provider: "openai", conn.Model); + var settings = settingsService.GetSetting(provider: "openai", _model); _webSocket = new ClientWebSocket(); _webSocket.Options.SetRequestHeader("Authorization", $"Bearer {settings.ApiKey}"); _webSocket.Options.SetRequestHeader("OpenAI-Beta", "realtime=v1"); - await _webSocket.ConnectAsync(new Uri($"wss://api.openai.com/v1/realtime?model={conn.Model}"), CancellationToken.None); + await _webSocket.ConnectAsync(new Uri($"wss://api.openai.com/v1/realtime?model={_model}"), CancellationToken.None); if (_webSocket.State == WebSocketState.Open) { diff --git a/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Text/TextCompletionProvider.cs b/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Text/TextCompletionProvider.cs index 91b39848..a80eb935 100644 --- a/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Text/TextCompletionProvider.cs +++ b/src/Plugins/BotSharp.Plugin.OpenAI/Providers/Text/TextCompletionProvider.cs @@ -1,9 +1,5 @@ -using BotSharp.Abstraction.MLTasks.Settings; using System.Net.Http; using System.Net.Mime; -using System.Text.Json; -using System.Text; -using BotSharp.Abstraction.Options; namespace BotSharp.Plugin.OpenAI.Providers.Text; diff --git a/src/Plugins/BotSharp.Plugin.OpenAI/Using.cs b/src/Plugins/BotSharp.Plugin.OpenAI/Using.cs index e8e458c2..6847cd86 100644 --- a/src/Plugins/BotSharp.Plugin.OpenAI/Using.cs +++ b/src/Plugins/BotSharp.Plugin.OpenAI/Using.cs @@ -4,6 +4,9 @@ global using System.Linq; global using System.IO; global using System.Threading.Tasks; global using System.Text.Json.Serialization; +global using System.Text; +global using System.Text.Json; +global using System.Threading; global using Microsoft.Extensions.DependencyInjection; global using Microsoft.Extensions.Logging; @@ -19,5 +22,13 @@ global using BotSharp.Abstraction.Agents; global using BotSharp.Abstraction.Files; global using BotSharp.Abstraction.Files.Models; global using BotSharp.Abstraction.Utilities; +global using BotSharp.Abstraction.Conversations.Enums; +global using BotSharp.Abstraction.Files.Utilities; +global using BotSharp.Abstraction.Functions.Models; +global using BotSharp.Abstraction.MLTasks.Settings; +global using BotSharp.Abstraction.Options; +global using BotSharp.Abstraction.Realtime; +global using BotSharp.Abstraction.Realtime.Models; +global using BotSharp.Core.Infrastructures; global using BotSharp.Plugin.OpenAI.Models; global using BotSharp.Plugin.OpenAI.Settings;