Skip to content

Commit 7dab9c8

Browse files
authored
Merge pull request #986 from hchen2020/master
Change to modelType when getting realtime model.
2 parents 3802f46 + bc686a6 commit 7dab9c8

File tree

6 files changed

+17
-19
lines changed

6 files changed

+17
-19
lines changed

src/Infrastructure/BotSharp.Abstraction/MLTasks/ILlmProviderService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ public interface ILlmProviderService
66
{
77
LlmModelSetting GetSetting(string provider, string model);
88
List<string> GetProviders();
9-
LlmModelSetting GetProviderModel(string provider, string id, bool? multiModal = null, bool realTime = false, bool imageGenerate = false);
9+
LlmModelSetting GetProviderModel(string provider, string id, bool? multiModal = null, LlmModelType? modelType = null, bool imageGenerate = false);
1010
List<LlmModelSetting> GetProviderModels(string provider);
1111
List<LlmProviderSetting> GetLlmConfigs(LlmConfigOptions? options = null);
1212
}

src/Infrastructure/BotSharp.Abstraction/MLTasks/Settings/LlmConfigOptions.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,5 @@ public class LlmConfigOptions
44
{
55
public LlmModelType? Type { get; set; }
66
public bool? MultiModal { get; set; }
7-
public bool? RealTime { get; set; }
87
public bool? ImageGeneration { get; set; }
98
}

src/Infrastructure/BotSharp.Abstraction/MLTasks/Settings/LlmModelSetting.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,6 @@ public class LlmModelSetting
3737
/// </summary>
3838
public bool MultiModal { get; set; }
3939

40-
/// <summary>
41-
/// If true, allow real-time interaction
42-
/// </summary>
43-
public bool RealTime { get; set; }
44-
4540
/// <summary>
4641
/// If true, allow generating images
4742
/// </summary>
@@ -84,5 +79,6 @@ public enum LlmModelType
8479
Chat = 2,
8580
Image = 3,
8681
Embedding = 4,
87-
Audio = 5
82+
Audio = 5,
83+
Realtime = 6,
8884
}

src/Infrastructure/BotSharp.Core.Realtime/Services/RealtimeHub.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using BotSharp.Abstraction.MLTasks.Settings;
12
using BotSharp.Core.Infrastructures;
23

34
namespace BotSharp.Core.Realtime.Services;
@@ -76,7 +77,7 @@ private async Task ConnectToModel(WebSocket userWebSocket)
7677
if (agent.Profiles.Contains("realtime"))
7778
{
7879
var llmProviderService = _services.GetRequiredService<ILlmProviderService>();
79-
model = llmProviderService.GetProviderModel("openai", "gpt-4o", realTime: true).Name;
80+
model = llmProviderService.GetProviderModel("openai", "gpt-4o", modelType: LlmModelType.Realtime).Name;
8081
}
8182

8283
_completer.SetModelName(model);

src/Infrastructure/BotSharp.Core/Infrastructures/CompletionProvider.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ public static object GetCompletion(IServiceProvider services,
3232
{
3333
return GetAudioTranscriber(services, provider: provider, model: model);
3434
}
35+
else if (settings.Type == LlmModelType.Realtime)
36+
{
37+
return GetRealTimeCompletion(services, provider: provider, model: model);
38+
}
3539
else
3640
{
3741
return GetChatCompletion(services, provider: provider, model: model, agentConfig: agentConfig);
@@ -172,7 +176,7 @@ public static IRealTimeCompletion GetRealTimeCompletion(IServiceProvider service
172176
var completions = services.GetServices<IRealTimeCompletion>();
173177
(provider, model) = GetProviderAndModel(services, provider: provider, model: model, modelId: modelId,
174178
multiModal: multiModal,
175-
realTime: true,
179+
modelType: LlmModelType.Realtime,
176180
agentConfig: agentConfig);
177181

178182
var completer = completions.FirstOrDefault(x => x.Provider == provider);
@@ -191,7 +195,7 @@ private static (string, string) GetProviderAndModel(IServiceProvider services,
191195
string? model = null,
192196
string? modelId = null,
193197
bool? multiModal = null,
194-
bool realTime = false,
198+
LlmModelType? modelType = null,
195199
bool imageGenerate = false,
196200
AgentLlmConfig? agentConfig = null)
197201
{
@@ -217,7 +221,7 @@ private static (string, string) GetProviderAndModel(IServiceProvider services,
217221
var llmProviderService = services.GetRequiredService<ILlmProviderService>();
218222
model = llmProviderService.GetProviderModel(provider, modelIdentity,
219223
multiModal: multiModal,
220-
realTime: realTime,
224+
modelType: modelType,
221225
imageGenerate: imageGenerate)?.Name;
222226
}
223227
}

src/Infrastructure/BotSharp.Core/Infrastructures/LlmProviderService.cs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public List<LlmModelSetting> GetProviderModels(string provider)
4444
?.Models ?? new List<LlmModelSetting>();
4545
}
4646

47-
public LlmModelSetting GetProviderModel(string provider, string id, bool? multiModal = null, bool realTime = false, bool imageGenerate = false)
47+
public LlmModelSetting GetProviderModel(string provider, string id, bool? multiModal = null, LlmModelType? modelType = null, bool imageGenerate = false)
4848
{
4949
var models = GetProviderModels(provider)
5050
.Where(x => x.Id == id);
@@ -54,7 +54,10 @@ public LlmModelSetting GetProviderModel(string provider, string id, bool? multiM
5454
models = models.Where(x => x.MultiModal == multiModal);
5555
}
5656

57-
models = models.Where(x => x.RealTime == realTime);
57+
if (modelType.HasValue)
58+
{
59+
models = models.Where(x => x.Type == modelType.Value);
60+
}
5861

5962
models = models.Where(x => x.ImageGeneration == imageGenerate);
6063

@@ -130,11 +133,6 @@ public List<LlmProviderSetting> GetLlmConfigs(LlmConfigOptions? options = null)
130133
models = models.Where(x => x.ImageGeneration == options.ImageGeneration.Value).ToList();
131134
}
132135

133-
if (options.RealTime.HasValue)
134-
{
135-
models = models.Where(x => x.RealTime == options.RealTime.Value).ToList();
136-
}
137-
138136
if (models.IsNullOrEmpty())
139137
{
140138
continue;

0 commit comments

Comments
 (0)