Merge pull request #986 from hchen2020/master
Change to modelType when getting realtime model.
This commit is contained in:
commit
7dab9c8b22
|
|
@ -6,7 +6,7 @@ public interface ILlmProviderService
|
|||
{
|
||||
LlmModelSetting GetSetting(string provider, string model);
|
||||
List<string> GetProviders();
|
||||
LlmModelSetting GetProviderModel(string provider, string id, bool? multiModal = null, bool realTime = false, bool imageGenerate = false);
|
||||
LlmModelSetting GetProviderModel(string provider, string id, bool? multiModal = null, LlmModelType? modelType = null, bool imageGenerate = false);
|
||||
List<LlmModelSetting> GetProviderModels(string provider);
|
||||
List<LlmProviderSetting> GetLlmConfigs(LlmConfigOptions? options = null);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,5 @@ public class LlmConfigOptions
|
|||
{
|
||||
public LlmModelType? Type { get; set; }
|
||||
public bool? MultiModal { get; set; }
|
||||
public bool? RealTime { get; set; }
|
||||
public bool? ImageGeneration { get; set; }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,11 +37,6 @@ public class LlmModelSetting
|
|||
/// </summary>
|
||||
public bool MultiModal { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// If true, allow real-time interaction
|
||||
/// </summary>
|
||||
public bool RealTime { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// If true, allow generating images
|
||||
/// </summary>
|
||||
|
|
@ -84,5 +79,6 @@ public enum LlmModelType
|
|||
Chat = 2,
|
||||
Image = 3,
|
||||
Embedding = 4,
|
||||
Audio = 5
|
||||
Audio = 5,
|
||||
Realtime = 6,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
using BotSharp.Abstraction.MLTasks.Settings;
|
||||
using BotSharp.Core.Infrastructures;
|
||||
|
||||
namespace BotSharp.Core.Realtime.Services;
|
||||
|
|
@ -76,7 +77,7 @@ public class RealtimeHub : IRealtimeHub
|
|||
if (agent.Profiles.Contains("realtime"))
|
||||
{
|
||||
var llmProviderService = _services.GetRequiredService<ILlmProviderService>();
|
||||
model = llmProviderService.GetProviderModel("openai", "gpt-4o", realTime: true).Name;
|
||||
model = llmProviderService.GetProviderModel("openai", "gpt-4o", modelType: LlmModelType.Realtime).Name;
|
||||
}
|
||||
|
||||
_completer.SetModelName(model);
|
||||
|
|
|
|||
|
|
@ -32,6 +32,10 @@ public class CompletionProvider
|
|||
{
|
||||
return GetAudioTranscriber(services, provider: provider, model: model);
|
||||
}
|
||||
else if (settings.Type == LlmModelType.Realtime)
|
||||
{
|
||||
return GetRealTimeCompletion(services, provider: provider, model: model);
|
||||
}
|
||||
else
|
||||
{
|
||||
return GetChatCompletion(services, provider: provider, model: model, agentConfig: agentConfig);
|
||||
|
|
@ -172,7 +176,7 @@ public class CompletionProvider
|
|||
var completions = services.GetServices<IRealTimeCompletion>();
|
||||
(provider, model) = GetProviderAndModel(services, provider: provider, model: model, modelId: modelId,
|
||||
multiModal: multiModal,
|
||||
realTime: true,
|
||||
modelType: LlmModelType.Realtime,
|
||||
agentConfig: agentConfig);
|
||||
|
||||
var completer = completions.FirstOrDefault(x => x.Provider == provider);
|
||||
|
|
@ -191,7 +195,7 @@ public class CompletionProvider
|
|||
string? model = null,
|
||||
string? modelId = null,
|
||||
bool? multiModal = null,
|
||||
bool realTime = false,
|
||||
LlmModelType? modelType = null,
|
||||
bool imageGenerate = false,
|
||||
AgentLlmConfig? agentConfig = null)
|
||||
{
|
||||
|
|
@ -217,7 +221,7 @@ public class CompletionProvider
|
|||
var llmProviderService = services.GetRequiredService<ILlmProviderService>();
|
||||
model = llmProviderService.GetProviderModel(provider, modelIdentity,
|
||||
multiModal: multiModal,
|
||||
realTime: realTime,
|
||||
modelType: modelType,
|
||||
imageGenerate: imageGenerate)?.Name;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ public class LlmProviderService : ILlmProviderService
|
|||
?.Models ?? new List<LlmModelSetting>();
|
||||
}
|
||||
|
||||
public LlmModelSetting GetProviderModel(string provider, string id, bool? multiModal = null, bool realTime = false, bool imageGenerate = false)
|
||||
public LlmModelSetting GetProviderModel(string provider, string id, bool? multiModal = null, LlmModelType? modelType = null, bool imageGenerate = false)
|
||||
{
|
||||
var models = GetProviderModels(provider)
|
||||
.Where(x => x.Id == id);
|
||||
|
|
@ -54,7 +54,10 @@ public class LlmProviderService : ILlmProviderService
|
|||
models = models.Where(x => x.MultiModal == multiModal);
|
||||
}
|
||||
|
||||
models = models.Where(x => x.RealTime == realTime);
|
||||
if (modelType.HasValue)
|
||||
{
|
||||
models = models.Where(x => x.Type == modelType.Value);
|
||||
}
|
||||
|
||||
models = models.Where(x => x.ImageGeneration == imageGenerate);
|
||||
|
||||
|
|
@ -130,11 +133,6 @@ public class LlmProviderService : ILlmProviderService
|
|||
models = models.Where(x => x.ImageGeneration == options.ImageGeneration.Value).ToList();
|
||||
}
|
||||
|
||||
if (options.RealTime.HasValue)
|
||||
{
|
||||
models = models.Where(x => x.RealTime == options.RealTime.Value).ToList();
|
||||
}
|
||||
|
||||
if (models.IsNullOrEmpty())
|
||||
{
|
||||
continue;
|
||||
|
|
|
|||
Loading…
Reference in a new issue