diff --git a/src/Plugins/BotSharp.Plugin.MetaGLM/MetaGLMClientV4.cs b/src/Plugins/BotSharp.Plugin.MetaGLM/MetaGLMClient.cs similarity index 60% rename from src/Plugins/BotSharp.Plugin.MetaGLM/MetaGLMClientV4.cs rename to src/Plugins/BotSharp.Plugin.MetaGLM/MetaGLMClient.cs index b99a1c90..18d87928 100644 --- a/src/Plugins/BotSharp.Plugin.MetaGLM/MetaGLMClientV4.cs +++ b/src/Plugins/BotSharp.Plugin.MetaGLM/MetaGLMClient.cs @@ -2,7 +2,7 @@ using BotSharp.Plugin.MetaGLM.Modules; namespace BotSharp.Plugin.MetaGLM { - public class MetaGLMClientV4 + public class MetaGLMClient { private MetaGLMSettings _settings; @@ -12,12 +12,12 @@ namespace BotSharp.Plugin.MetaGLM public Embeddings Embeddings { get; private set; } - public MetaGLMClientV4(MetaGLMSettings settings) + public MetaGLMClient(MetaGLMSettings settings) { this._settings = settings; - this.Chat = new Chat(this._settings.ApiKey); - this.Images = new Images(this._settings.ApiKey); - this.Embeddings = new Embeddings(this._settings.ApiKey); + this.Chat = new Chat(this._settings.ApiKey, _settings.BaseAddress); + this.Images = new Images(this._settings.ApiKey, _settings.BaseAddress); + this.Embeddings = new Embeddings(this._settings.ApiKey, _settings.BaseAddress); } } } diff --git a/src/Plugins/BotSharp.Plugin.MetaGLM/MetaGLMPlugin.cs b/src/Plugins/BotSharp.Plugin.MetaGLM/MetaGLMPlugin.cs index abdfd4ac..de363134 100644 --- a/src/Plugins/BotSharp.Plugin.MetaGLM/MetaGLMPlugin.cs +++ b/src/Plugins/BotSharp.Plugin.MetaGLM/MetaGLMPlugin.cs @@ -23,7 +23,7 @@ public class MetaGLMPlugin : IBotSharpPlugin var settingService = provider.GetRequiredService(); return settingService.Bind("MetaGLM"); }); - services.AddScoped(); + services.AddScoped(); services.AddScoped(); } } diff --git a/src/Plugins/BotSharp.Plugin.MetaGLM/Modules/Chat.cs b/src/Plugins/BotSharp.Plugin.MetaGLM/Modules/Chat.cs index 2de78239..bf5c1ec4 100644 --- a/src/Plugins/BotSharp.Plugin.MetaGLM/Modules/Chat.cs +++ b/src/Plugins/BotSharp.Plugin.MetaGLM/Modules/Chat.cs @@ -1,23 +1,24 @@ namespace BotSharp.Plugin.MetaGLM.Modules; -public enum ModelPortal -{ - Regular, - Character, -} +//public enum ModelPortal +//{ +// Regular, +// Character, +//} public class Chat { private string _apiKey; + private string _baseAddress; private static readonly int API_TOKEN_TTL_SECONDS = 60 * 5; private static readonly HttpClient client = new(); - private static readonly Dictionary PORTAL_URLS = new() - { - { ModelPortal.Regular , "https://open.bigmodel.cn/api/paas/v4/chat/completions"}, - }; + //private static readonly Dictionary PORTAL_URLS = new() + //{ + // { ModelPortal.Regular , "https://open.bigmodel.cn/api/paas/v4/chat/completions"}, + //}; private static readonly JsonSerializerOptions JsonOptions = new () { @@ -29,9 +30,10 @@ public class Chat WriteIndented = true, }; - public Chat(string apiKey) + public Chat(string apiKey, string basicAddress = "https://open.bigmodel.cn/api/paas/v4/") { this._apiKey = apiKey; + this._baseAddress = basicAddress; } private async IAsyncEnumerable CompletionBase(TextRequestBase textRequestBody,string apiKey) @@ -43,7 +45,7 @@ public class Chat var request = new HttpRequestMessage { Method = HttpMethod.Post, - RequestUri = new Uri("https://open.bigmodel.cn/api/paas/v4/chat/completions"), + RequestUri = new Uri($"{_baseAddress}/chat/completions"), Content = data, Headers = { diff --git a/src/Plugins/BotSharp.Plugin.MetaGLM/Modules/Embeddings.cs b/src/Plugins/BotSharp.Plugin.MetaGLM/Modules/Embeddings.cs index 46526280..1eb48146 100644 --- a/src/Plugins/BotSharp.Plugin.MetaGLM/Modules/Embeddings.cs +++ b/src/Plugins/BotSharp.Plugin.MetaGLM/Modules/Embeddings.cs @@ -3,27 +3,30 @@ namespace BotSharp.Plugin.MetaGLM.Modules; public class Embeddings { private string _apiKey; + private string _baseAddress; private static readonly int API_TOKEN_TTL_SECONDS = 60 * 5; static readonly HttpClient client = new(); - public Embeddings(string apiKey) + public Embeddings(string apiKey, string basicAddress = "https://open.bigmodel.cn/api/paas/v4/") { this._apiKey = apiKey; + this._baseAddress = basicAddress; } - private IEnumerable ProcessBase(EmbeddingRequestBase requestBody, string apiKey) + + private IEnumerable ProcessBase(EmbeddingRequestBase requestBody) { var json = JsonSerializer.Serialize(requestBody); // Console.WriteLine(JsonSerializer.Serialize(requestBody)); // Console.WriteLine("----1----"); // Console.WriteLine(json); var data = new StringContent(json, Encoding.UTF8, "application/json"); - var api_key = AuthenticationUtils.GenerateToken(apiKey, API_TOKEN_TTL_SECONDS); + var api_key = AuthenticationUtils.GenerateToken(_apiKey, API_TOKEN_TTL_SECONDS); var request = new HttpRequestMessage { Method = HttpMethod.Post, - RequestUri = new Uri("https://open.bigmodel.cn/api/paas/v4/embeddings"), + RequestUri = new Uri($"{_baseAddress}/embeddings"), Content = data, Headers = { @@ -43,10 +46,10 @@ public class Embeddings } } - public EmbeddingResponseBase Process(EmbeddingRequestBase requestBody, string apiKey) + public EmbeddingResponseBase Process(EmbeddingRequestBase requestBody) { var sb = new StringBuilder(); - foreach (var str in ProcessBase(requestBody,apiKey)) + foreach (var str in ProcessBase(requestBody)) { sb.Append(str); } diff --git a/src/Plugins/BotSharp.Plugin.MetaGLM/Modules/Images.cs b/src/Plugins/BotSharp.Plugin.MetaGLM/Modules/Images.cs index b196edda..dd23a868 100644 --- a/src/Plugins/BotSharp.Plugin.MetaGLM/Modules/Images.cs +++ b/src/Plugins/BotSharp.Plugin.MetaGLM/Modules/Images.cs @@ -3,24 +3,26 @@ namespace BotSharp.Plugin.MetaGLM.Modules; public class Images { private string _apiKey; + private string _baseAddress; private static readonly int API_TOKEN_TTL_SECONDS = 60 * 5; static readonly HttpClient client = new HttpClient(); - public Images(string apiKey) + public Images(string apiKey, string basicAddress = "https://open.bigmodel.cn/api/paas/v4/") { this._apiKey = apiKey; + this._baseAddress = basicAddress; } - private IEnumerable GenerateBase(ImageRequestBase requestBody, string apiKey) + private IEnumerable GenerateBase(ImageRequestBase requestBody) { var json = JsonSerializer.Serialize(requestBody); var data = new StringContent(json, Encoding.UTF8, "application/json"); - var api_key = AuthenticationUtils.GenerateToken(apiKey, API_TOKEN_TTL_SECONDS); + var api_key = AuthenticationUtils.GenerateToken(_apiKey, API_TOKEN_TTL_SECONDS); var request = new HttpRequestMessage { Method = HttpMethod.Post, - RequestUri = new Uri("https://open.bigmodel.cn/api/paas/v4/images/generations"), + RequestUri = new Uri($"{_baseAddress}images/generations"), Content = data, Headers = { @@ -43,7 +45,7 @@ public class Images public ImageResponseBase Generation(ImageRequestBase requestBody, string apiKey) { StringBuilder sb = new StringBuilder(); - foreach (var str in GenerateBase(requestBody,apiKey)) + foreach (var str in GenerateBase(requestBody)) { sb.Append(str); } diff --git a/src/Plugins/BotSharp.Plugin.MetaGLM/Providers/ChatCompletionProvider.cs b/src/Plugins/BotSharp.Plugin.MetaGLM/Providers/ChatCompletionProvider.cs index cf32864f..c702a7ec 100644 --- a/src/Plugins/BotSharp.Plugin.MetaGLM/Providers/ChatCompletionProvider.cs +++ b/src/Plugins/BotSharp.Plugin.MetaGLM/Providers/ChatCompletionProvider.cs @@ -7,12 +7,12 @@ public class ChatCompletionProvider : IChatCompletion private readonly MetaGLMSettings _settings; private readonly IServiceProvider _services; private readonly ILogger _logger; - private readonly MetaGLMClientV4 metaGLMClient; + private readonly MetaGLMClient metaGLMClient; private string _model; public ChatCompletionProvider(IServiceProvider services, MetaGLMSettings settings, - MetaGLMClientV4 client, + MetaGLMClient client, ILogger logger) { _services = services; diff --git a/src/Plugins/BotSharp.Plugin.MetaGLM/Settings/MetaGLMSettings.cs b/src/Plugins/BotSharp.Plugin.MetaGLM/Settings/MetaGLMSettings.cs index ac450c5e..675af8c2 100644 --- a/src/Plugins/BotSharp.Plugin.MetaGLM/Settings/MetaGLMSettings.cs +++ b/src/Plugins/BotSharp.Plugin.MetaGLM/Settings/MetaGLMSettings.cs @@ -7,6 +7,8 @@ public class MetaGLMSettings /// public string ApiKey { get; set; } + public string BaseAddress { get; set; } = "https://open.bigmodel.cn/api/paas/v4/"; + public string ModelId { get; set; } public double Temperature { get; set; }