diff --git a/Directory.Build.props b/Directory.Build.props
index 249103d7..6940e0bc 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -2,7 +2,7 @@
10.0
..\..\..\packages
- 0.12.3
+ 0.13.0
true
\ No newline at end of file
diff --git a/src/Infrastructure/BotSharp.Abstraction/BotSharp.Abstraction.csproj b/src/Infrastructure/BotSharp.Abstraction/BotSharp.Abstraction.csproj
index dcb9534f..ba1ea69d 100644
--- a/src/Infrastructure/BotSharp.Abstraction/BotSharp.Abstraction.csproj
+++ b/src/Infrastructure/BotSharp.Abstraction/BotSharp.Abstraction.csproj
@@ -4,7 +4,7 @@
netstandard2.1
enable
$(LangVersion)
- $(PackageVersion)
+ $(BotSharpVersion)
Icon.png
$(GeneratePackageOnBuild)
diff --git a/src/Infrastructure/BotSharp.Abstraction/MLTasks/IChatCompletion.cs b/src/Infrastructure/BotSharp.Abstraction/MLTasks/IChatCompletion.cs
index 15ad54aa..3854e1b0 100644
--- a/src/Infrastructure/BotSharp.Abstraction/MLTasks/IChatCompletion.cs
+++ b/src/Infrastructure/BotSharp.Abstraction/MLTasks/IChatCompletion.cs
@@ -2,11 +2,23 @@ namespace BotSharp.Abstraction.MLTasks;
public interface IChatCompletion
{
+ ///
+ /// The LLM provider like Microsoft Azure, OpenAI, ClaudAI
+ ///
string Provider { get; }
+
+ ///
+ /// Set model name, one provider can consume different model or version(s)
+ ///
+ ///
+ void SetModelName(string model);
+
Task GetChatCompletionsAsync(Agent agent,
List conversations,
Func onMessageReceived,
Func onFunctionExecuting);
- Task GetChatCompletionsStreamingAsync(Agent agent, List conversations, Func onMessageReceived);
+ Task GetChatCompletionsStreamingAsync(Agent agent,
+ List conversations,
+ Func onMessageReceived);
}
diff --git a/src/Infrastructure/BotSharp.Core/BotSharp.Core.csproj b/src/Infrastructure/BotSharp.Core/BotSharp.Core.csproj
index cc807aee..71d4415d 100644
--- a/src/Infrastructure/BotSharp.Core/BotSharp.Core.csproj
+++ b/src/Infrastructure/BotSharp.Core/BotSharp.Core.csproj
@@ -3,7 +3,7 @@
netstandard2.1
$(LangVersion)
- $(PackageVersion)
+ $(BotSharpVersion)
$(GeneratePackageOnBuild)
diff --git a/src/Infrastructure/BotSharp.Core/Infrastructures/CompletionProvider.cs b/src/Infrastructure/BotSharp.Core/Infrastructures/CompletionProvider.cs
index 9534581e..d7b716f9 100644
--- a/src/Infrastructure/BotSharp.Core/Infrastructures/CompletionProvider.cs
+++ b/src/Infrastructure/BotSharp.Core/Infrastructures/CompletionProvider.cs
@@ -4,16 +4,31 @@ namespace BotSharp.Core.Infrastructures;
public class CompletionProvider
{
- public static IChatCompletion GetChatCompletion(IServiceProvider services, string? provider = null)
+ public static IChatCompletion GetChatCompletion(IServiceProvider services, string? provider = null, string? model = null)
{
var completions = services.GetServices();
var state = services.GetRequiredService();
+
if (provider == null)
{
- provider = state.GetState("provider", "azure-gpt-3.5");
+ provider = state.GetState("provider", "azure-openai");
}
-
- return completions.FirstOrDefault(x => x.Provider == provider);
+
+ if (model == null)
+ {
+ model = state.GetState("model", "gpt-3.5-turbo");
+ }
+
+ var completer = completions.FirstOrDefault(x => x.Provider == provider);
+ if (completer == null)
+ {
+ var logger = services.GetRequiredService>();
+ logger.LogError($"Can't resolve completion provider by {provider}");
+ }
+
+ completer.SetModelName(model);
+
+ return completer;
}
}
diff --git a/src/Infrastructure/BotSharp.OpenAPI/BotSharp.OpenAPI.csproj b/src/Infrastructure/BotSharp.OpenAPI/BotSharp.OpenAPI.csproj
index bbbf3ddf..cef8a0e6 100644
--- a/src/Infrastructure/BotSharp.OpenAPI/BotSharp.OpenAPI.csproj
+++ b/src/Infrastructure/BotSharp.OpenAPI/BotSharp.OpenAPI.csproj
@@ -5,7 +5,7 @@
enable
enable
$(LangVersion)
- $(PackageVersion)
+ $(BotSharpVersion)
$(GeneratePackageOnBuild)
diff --git a/src/Plugins/BotSharp.Plugin.AzureOpenAI/AzureOpenAiPlugin.cs b/src/Plugins/BotSharp.Plugin.AzureOpenAI/AzureOpenAiPlugin.cs
index b966d167..1232e668 100644
--- a/src/Plugins/BotSharp.Plugin.AzureOpenAI/AzureOpenAiPlugin.cs
+++ b/src/Plugins/BotSharp.Plugin.AzureOpenAI/AzureOpenAiPlugin.cs
@@ -23,6 +23,5 @@ public class AzureOpenAiPlugin : IBotSharpPlugin
services.AddScoped();
services.AddScoped();
- services.AddScoped();
}
}
\ No newline at end of file
diff --git a/src/Plugins/BotSharp.Plugin.AzureOpenAI/BotSharp.Plugin.AzureOpenAI.csproj b/src/Plugins/BotSharp.Plugin.AzureOpenAI/BotSharp.Plugin.AzureOpenAI.csproj
index bc3a8a0d..2fdd480e 100644
--- a/src/Plugins/BotSharp.Plugin.AzureOpenAI/BotSharp.Plugin.AzureOpenAI.csproj
+++ b/src/Plugins/BotSharp.Plugin.AzureOpenAI/BotSharp.Plugin.AzureOpenAI.csproj
@@ -4,7 +4,7 @@
netstandard2.1
enable
$(LangVersion)
- $(PackageVersion)
+ $(BotSharpVersion)
$(GeneratePackageOnBuild)
diff --git a/src/Plugins/BotSharp.Plugin.AzureOpenAI/Providers/ChatCompletionProvider.cs b/src/Plugins/BotSharp.Plugin.AzureOpenAI/Providers/ChatCompletionProvider.cs
index 1f71192a..5434d586 100644
--- a/src/Plugins/BotSharp.Plugin.AzureOpenAI/Providers/ChatCompletionProvider.cs
+++ b/src/Plugins/BotSharp.Plugin.AzureOpenAI/Providers/ChatCompletionProvider.cs
@@ -20,11 +20,12 @@ namespace BotSharp.Plugin.AzureOpenAI.Providers;
public class ChatCompletionProvider : IChatCompletion
{
- protected readonly AzureOpenAiSettings _settings;
- protected readonly IServiceProvider _services;
- protected readonly ILogger _logger;
+ private readonly AzureOpenAiSettings _settings;
+ private readonly IServiceProvider _services;
+ private readonly ILogger _logger;
+ private string _model;
- public virtual string Provider => "azure-gpt-3.5";
+ public virtual string Provider => "azure-openai";
public ChatCompletionProvider(AzureOpenAiSettings settings,
ILogger logger,
@@ -37,8 +38,16 @@ public class ChatCompletionProvider : IChatCompletion
protected virtual (OpenAIClient, string) GetClient()
{
- var client = new OpenAIClient(new Uri(_settings.Endpoint), new AzureKeyCredential(_settings.ApiKey));
- return (client, _settings.DeploymentModel.ChatCompletionModel);
+ if (_model == "gpt-4")
+ {
+ var client = new OpenAIClient(new Uri(_settings.GPT4.Endpoint), new AzureKeyCredential(_settings.GPT4.ApiKey));
+ return (client, _settings.GPT4.DeploymentModel);
+ }
+ else
+ {
+ var client = new OpenAIClient(new Uri(_settings.Endpoint), new AzureKeyCredential(_settings.ApiKey));
+ return (client, _settings.DeploymentModel.ChatCompletionModel);
+ }
}
public List GetChatSamples(string sampleText)
@@ -243,4 +252,9 @@ public class ChatCompletionProvider : IChatCompletion
return chatCompletionsOptions;
}
+
+ public void SetModelName(string model)
+ {
+ _model = model;
+ }
}
diff --git a/src/Plugins/BotSharp.Plugin.AzureOpenAI/Providers/GPT4CompletionProvider.cs b/src/Plugins/BotSharp.Plugin.AzureOpenAI/Providers/GPT4CompletionProvider.cs
deleted file mode 100644
index 63c0da53..00000000
--- a/src/Plugins/BotSharp.Plugin.AzureOpenAI/Providers/GPT4CompletionProvider.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using Azure;
-using Azure.AI.OpenAI;
-using BotSharp.Plugin.AzureOpenAI.Settings;
-using Microsoft.Extensions.Logging;
-using System;
-
-namespace BotSharp.Plugin.AzureOpenAI.Providers;
-
-public class GPT4CompletionProvider : ChatCompletionProvider
-{
- public override string Provider => "azure-gpt-4";
-
- public GPT4CompletionProvider(AzureOpenAiSettings settings,
- ILogger logger,
- IServiceProvider services) : base(settings, logger, services)
- {
- }
-
- protected override (OpenAIClient, string) GetClient()
- {
- var client = new OpenAIClient(new Uri(_settings.GPT4.Endpoint), new AzureKeyCredential(_settings.GPT4.ApiKey));
- return (client, _settings.GPT4.DeploymentModel);
- }
-}
diff --git a/src/Plugins/BotSharp.Plugin.ChatbotUI/BotSharp.Plugin.ChatbotUI.csproj b/src/Plugins/BotSharp.Plugin.ChatbotUI/BotSharp.Plugin.ChatbotUI.csproj
index 1ce0ac4d..78b077dd 100644
--- a/src/Plugins/BotSharp.Plugin.ChatbotUI/BotSharp.Plugin.ChatbotUI.csproj
+++ b/src/Plugins/BotSharp.Plugin.ChatbotUI/BotSharp.Plugin.ChatbotUI.csproj
@@ -4,7 +4,7 @@
netstandard2.1
enable
$(LangVersion)
- $(PackageVersion)
+ $(BotSharpVersion)
$(GeneratePackageOnBuild)
diff --git a/src/Plugins/BotSharp.Plugin.HuggingFace/BotSharp.Plugin.HuggingFace.csproj b/src/Plugins/BotSharp.Plugin.HuggingFace/BotSharp.Plugin.HuggingFace.csproj
index 7c6b51fe..d0c56c27 100644
--- a/src/Plugins/BotSharp.Plugin.HuggingFace/BotSharp.Plugin.HuggingFace.csproj
+++ b/src/Plugins/BotSharp.Plugin.HuggingFace/BotSharp.Plugin.HuggingFace.csproj
@@ -4,7 +4,7 @@
netstandard2.1
enable
$(LangVersion)
- $(PackageVersion)
+ $(BotSharpVersion)
$(GeneratePackageOnBuild)
diff --git a/src/Plugins/BotSharp.Plugin.HuggingFace/Providers/ChatCompletionProvider.cs b/src/Plugins/BotSharp.Plugin.HuggingFace/Providers/ChatCompletionProvider.cs
index ceac5320..4e39ff7b 100644
--- a/src/Plugins/BotSharp.Plugin.HuggingFace/Providers/ChatCompletionProvider.cs
+++ b/src/Plugins/BotSharp.Plugin.HuggingFace/Providers/ChatCompletionProvider.cs
@@ -13,6 +13,7 @@ public class ChatCompletionProvider : IChatCompletion
private readonly IServiceProvider _services;
private readonly HuggingFaceSettings _settings;
private readonly ILogger _logger;
+ private string _model;
public ChatCompletionProvider(IServiceProvider services,
HuggingFaceSettings settings,
@@ -69,4 +70,9 @@ public class ChatCompletionProvider : IChatCompletion
{
return true;
}
+
+ public void SetModelName(string model)
+ {
+ _model = model;
+ }
}
diff --git a/src/Plugins/BotSharp.Plugin.KnowledgeBase/BotSharp.Plugin.KnowledgeBase.csproj b/src/Plugins/BotSharp.Plugin.KnowledgeBase/BotSharp.Plugin.KnowledgeBase.csproj
index a66f1f28..acbfa4fd 100644
--- a/src/Plugins/BotSharp.Plugin.KnowledgeBase/BotSharp.Plugin.KnowledgeBase.csproj
+++ b/src/Plugins/BotSharp.Plugin.KnowledgeBase/BotSharp.Plugin.KnowledgeBase.csproj
@@ -4,7 +4,7 @@
netstandard2.1
enable
$(LangVersion)
- $(PackageVersion)
+ $(BotSharpVersion)
$(GeneratePackageOnBuild)
diff --git a/src/Plugins/BotSharp.Plugin.LLamaSharp/BotSharp.Plugin.LLamaSharp.csproj b/src/Plugins/BotSharp.Plugin.LLamaSharp/BotSharp.Plugin.LLamaSharp.csproj
index df8c0e41..0a75a201 100644
--- a/src/Plugins/BotSharp.Plugin.LLamaSharp/BotSharp.Plugin.LLamaSharp.csproj
+++ b/src/Plugins/BotSharp.Plugin.LLamaSharp/BotSharp.Plugin.LLamaSharp.csproj
@@ -4,7 +4,7 @@
netstandard2.1
enable
$(LangVersion)
- $(PackageVersion)
+ $(BotSharpVersion)
$(GeneratePackageOnBuild)
diff --git a/src/Plugins/BotSharp.Plugin.LLamaSharp/Providers/ChatCompletionProvider.cs b/src/Plugins/BotSharp.Plugin.LLamaSharp/Providers/ChatCompletionProvider.cs
index 02ab50e7..dbdaef4d 100644
--- a/src/Plugins/BotSharp.Plugin.LLamaSharp/Providers/ChatCompletionProvider.cs
+++ b/src/Plugins/BotSharp.Plugin.LLamaSharp/Providers/ChatCompletionProvider.cs
@@ -23,6 +23,7 @@ public class ChatCompletionProvider : IChatCompletion
private readonly IServiceProvider _services;
private readonly ILogger _logger;
private readonly LlamaSharpSettings _settings;
+ private string _model;
public ChatCompletionProvider(IServiceProvider services,
ILogger logger,
@@ -118,4 +119,9 @@ public class ChatCompletionProvider : IChatCompletion
return true;
}
+
+ public void SetModelName(string model)
+ {
+ _model = model;
+ }
}
diff --git a/src/Plugins/BotSharp.Plugin.MetaAI/BotSharp.Plugin.MetaAI.csproj b/src/Plugins/BotSharp.Plugin.MetaAI/BotSharp.Plugin.MetaAI.csproj
index fd3b01ef..1e234769 100644
--- a/src/Plugins/BotSharp.Plugin.MetaAI/BotSharp.Plugin.MetaAI.csproj
+++ b/src/Plugins/BotSharp.Plugin.MetaAI/BotSharp.Plugin.MetaAI.csproj
@@ -4,7 +4,7 @@
netstandard2.1
enable
$(LangVersion)
- $(PackageVersion)
+ $(BotSharpVersion)
$(GeneratePackageOnBuild)
diff --git a/src/Plugins/BotSharp.Plugin.MetaMessenger/BotSharp.Plugin.MetaMessenger.csproj b/src/Plugins/BotSharp.Plugin.MetaMessenger/BotSharp.Plugin.MetaMessenger.csproj
index 289cdcc3..8c0499e5 100644
--- a/src/Plugins/BotSharp.Plugin.MetaMessenger/BotSharp.Plugin.MetaMessenger.csproj
+++ b/src/Plugins/BotSharp.Plugin.MetaMessenger/BotSharp.Plugin.MetaMessenger.csproj
@@ -3,7 +3,7 @@
netstandard2.1
$(LangVersion)
- $(PackageVersion)
+ $(BotSharpVersion)
$(GeneratePackageOnBuild)
diff --git a/src/Plugins/BotSharp.Plugin.MongoStorage/BotSharp.Plugin.MongoStorage.csproj b/src/Plugins/BotSharp.Plugin.MongoStorage/BotSharp.Plugin.MongoStorage.csproj
index 57385741..680c4126 100644
--- a/src/Plugins/BotSharp.Plugin.MongoStorage/BotSharp.Plugin.MongoStorage.csproj
+++ b/src/Plugins/BotSharp.Plugin.MongoStorage/BotSharp.Plugin.MongoStorage.csproj
@@ -3,7 +3,7 @@
netstandard2.1
$(LangVersion)
- $(PackageVersion)
+ $(BotSharpVersion)
$(GeneratePackageOnBuild)
diff --git a/src/Plugins/BotSharp.Plugin.Qdrant/BotSharp.Plugin.Qdrant.csproj b/src/Plugins/BotSharp.Plugin.Qdrant/BotSharp.Plugin.Qdrant.csproj
index 763b75a2..e02d4448 100644
--- a/src/Plugins/BotSharp.Plugin.Qdrant/BotSharp.Plugin.Qdrant.csproj
+++ b/src/Plugins/BotSharp.Plugin.Qdrant/BotSharp.Plugin.Qdrant.csproj
@@ -4,7 +4,7 @@
netstandard2.1
enable
$(LangVersion)
- $(PackageVersion)
+ $(BotSharpVersion)
$(GeneratePackageOnBuild)
diff --git a/src/Plugins/BotSharp.Plugin.RoutingSpeeder/BotSharp.Plugin.RoutingSpeeder.csproj b/src/Plugins/BotSharp.Plugin.RoutingSpeeder/BotSharp.Plugin.RoutingSpeeder.csproj
index bd74b74d..aa8a9a2f 100644
--- a/src/Plugins/BotSharp.Plugin.RoutingSpeeder/BotSharp.Plugin.RoutingSpeeder.csproj
+++ b/src/Plugins/BotSharp.Plugin.RoutingSpeeder/BotSharp.Plugin.RoutingSpeeder.csproj
@@ -4,7 +4,7 @@
netstandard2.1
enable
$(LangVersion)
- $(PackageVersion)
+ $(BotSharpVersion)
$(GeneratePackageOnBuild)
diff --git a/src/Plugins/BotSharp.Plugin.WeChat/BotSharp.Plugin.WeChat.csproj b/src/Plugins/BotSharp.Plugin.WeChat/BotSharp.Plugin.WeChat.csproj
index 59ae162a..fbff2484 100644
--- a/src/Plugins/BotSharp.Plugin.WeChat/BotSharp.Plugin.WeChat.csproj
+++ b/src/Plugins/BotSharp.Plugin.WeChat/BotSharp.Plugin.WeChat.csproj
@@ -3,7 +3,7 @@
netstandard2.1
$(LangVersion)
- $(PackageVersion)
+ $(BotSharpVersion)
$(GeneratePackageOnBuild)
@@ -14,7 +14,6 @@
https://github.com/Oceania2018/botsharp-channel-weixin
Apache 2.0
botsharp, wechat, wexin, chatbot
- $(PackageVersion)