mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-02-12 05:21:36 +00:00
Refactored configuration export into provider classes
This commit is contained in:
parent
092fa26dd6
commit
dcfaf22859
@ -1,6 +1,5 @@
|
||||
using AIStudio.Dialogs;
|
||||
using AIStudio.Settings;
|
||||
using AIStudio.Tools.PluginSystem;
|
||||
|
||||
using Microsoft.AspNetCore.Components;
|
||||
|
||||
@ -121,7 +120,7 @@ public partial class SettingsPanelEmbeddings : SettingsPanelBase
|
||||
if (provider == EmbeddingProvider.NONE)
|
||||
return;
|
||||
|
||||
var luaCode = ConfigurationExport.ExportEmbeddingProvider(provider);
|
||||
var luaCode = provider.ExportAsConfigurationSection();
|
||||
if (string.IsNullOrWhiteSpace(luaCode))
|
||||
return;
|
||||
|
||||
@ -136,4 +135,4 @@ public partial class SettingsPanelEmbeddings : SettingsPanelBase
|
||||
|
||||
await this.AvailableEmbeddingProvidersChanged.InvokeAsync(this.AvailableEmbeddingProviders);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,7 +3,6 @@ using System.Diagnostics.CodeAnalysis;
|
||||
using AIStudio.Dialogs;
|
||||
using AIStudio.Provider;
|
||||
using AIStudio.Settings;
|
||||
using AIStudio.Tools.PluginSystem;
|
||||
|
||||
using Microsoft.AspNetCore.Components;
|
||||
|
||||
@ -140,7 +139,7 @@ public partial class SettingsPanelProviders : SettingsPanelBase
|
||||
if (provider == AIStudio.Settings.Provider.NONE)
|
||||
return;
|
||||
|
||||
var luaCode = ConfigurationExport.ExportProvider(provider);
|
||||
var luaCode = provider.ExportAsConfigurationSection();
|
||||
if (string.IsNullOrWhiteSpace(luaCode))
|
||||
return;
|
||||
|
||||
@ -189,4 +188,4 @@ public partial class SettingsPanelProviders : SettingsPanelBase
|
||||
this.SettingsManager.ConfigurationData.LLMProviders.CustomConfidenceScheme[llmProvider] = level;
|
||||
await this.SettingsManager.StoreSettings();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
using AIStudio.Dialogs;
|
||||
using AIStudio.Settings;
|
||||
using AIStudio.Tools.PluginSystem;
|
||||
|
||||
using Microsoft.AspNetCore.Components;
|
||||
|
||||
@ -121,7 +120,7 @@ public partial class SettingsPanelTranscription : SettingsPanelBase
|
||||
if (provider == TranscriptionProvider.NONE)
|
||||
return;
|
||||
|
||||
var luaCode = ConfigurationExport.ExportTranscriptionProvider(provider);
|
||||
var luaCode = provider.ExportAsConfigurationSection();
|
||||
if (string.IsNullOrWhiteSpace(luaCode))
|
||||
return;
|
||||
|
||||
@ -136,4 +135,4 @@ public partial class SettingsPanelTranscription : SettingsPanelBase
|
||||
|
||||
await this.AvailableTranscriptionProvidersChanged.InvokeAsync(this.AvailableTranscriptionProviders);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -131,4 +131,42 @@ public sealed record EmbeddingProvider(
|
||||
model = new(id, displayName);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public string ExportAsConfigurationSection()
|
||||
{
|
||||
return $$"""
|
||||
CONFIG["EMBEDDING_PROVIDERS"][#CONFIG["EMBEDDING_PROVIDERS"]+1] = {
|
||||
["Id"] = "{{EscapeLuaString(NormalizeId(this.Id))}}",
|
||||
["Name"] = "{{EscapeLuaString(this.Name)}}",
|
||||
["UsedLLMProvider"] = "{{this.UsedLLMProvider}}",
|
||||
|
||||
["Host"] = "{{this.Host}}",
|
||||
["Hostname"] = "{{EscapeLuaString(this.Hostname)}}",
|
||||
["Model"] = {
|
||||
["Id"] = "{{EscapeLuaString(this.Model.Id)}}",
|
||||
["DisplayName"] = "{{EscapeLuaString(this.Model.DisplayName ?? string.Empty)}}",
|
||||
},
|
||||
}
|
||||
""";
|
||||
}
|
||||
|
||||
private static string NormalizeId(string? id)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(id))
|
||||
return id;
|
||||
|
||||
return Guid.NewGuid().ToString();
|
||||
}
|
||||
|
||||
private static string EscapeLuaString(string? value)
|
||||
{
|
||||
if (string.IsNullOrEmpty(value))
|
||||
return string.Empty;
|
||||
|
||||
return value
|
||||
.Replace("\\", "\\\\")
|
||||
.Replace("\"", "\\\"")
|
||||
.Replace("\r", "\\r")
|
||||
.Replace("\n", "\\n");
|
||||
}
|
||||
}
|
||||
|
||||
@ -188,4 +188,52 @@ public sealed record Provider(
|
||||
model = new(id, displayName);
|
||||
return true;
|
||||
}
|
||||
|
||||
public string ExportAsConfigurationSection()
|
||||
{
|
||||
var hfInferenceProviderLine = string.Empty;
|
||||
if (this.HFInferenceProvider is not HFInferenceProvider.NONE)
|
||||
{
|
||||
hfInferenceProviderLine = $"""
|
||||
["HFInferenceProvider"] = "{this.HFInferenceProvider}",
|
||||
""";
|
||||
}
|
||||
|
||||
return $$"""
|
||||
CONFIG["LLM_PROVIDERS"][#CONFIG["LLM_PROVIDERS"]+1] = {
|
||||
["Id"] = "{{EscapeLuaString(NormalizeId(this.Id))}}",
|
||||
["InstanceName"] = "{{EscapeLuaString(this.InstanceName)}}",
|
||||
["UsedLLMProvider"] = "{{this.UsedLLMProvider}}",
|
||||
|
||||
["Host"] = "{{this.Host}}",
|
||||
["Hostname"] = "{{EscapeLuaString(this.Hostname)}}",
|
||||
{{hfInferenceProviderLine}}
|
||||
["AdditionalJsonApiParameters"] = "{{EscapeLuaString(this.AdditionalJsonApiParameters)}}",
|
||||
["Model"] = {
|
||||
["Id"] = "{{EscapeLuaString(this.Model.Id)}}",
|
||||
["DisplayName"] = "{{EscapeLuaString(this.Model.DisplayName ?? string.Empty)}}",
|
||||
},
|
||||
}
|
||||
""";
|
||||
}
|
||||
|
||||
private static string NormalizeId(string? id)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(id))
|
||||
return id;
|
||||
|
||||
return Guid.NewGuid().ToString();
|
||||
}
|
||||
|
||||
private static string EscapeLuaString(string? value)
|
||||
{
|
||||
if (string.IsNullOrEmpty(value))
|
||||
return string.Empty;
|
||||
|
||||
return value
|
||||
.Replace("\\", "\\\\")
|
||||
.Replace("\"", "\\\"")
|
||||
.Replace("\r", "\\r")
|
||||
.Replace("\n", "\\n");
|
||||
}
|
||||
}
|
||||
|
||||
@ -131,4 +131,42 @@ public sealed record TranscriptionProvider(
|
||||
model = new(id, displayName);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public string ExportAsConfigurationSection()
|
||||
{
|
||||
return $$"""
|
||||
CONFIG["TRANSCRIPTION_PROVIDERS"][#CONFIG["TRANSCRIPTION_PROVIDERS"]+1] = {
|
||||
["Id"] = "{{EscapeLuaString(NormalizeId(this.Id))}}",
|
||||
["Name"] = "{{EscapeLuaString(this.Name)}}",
|
||||
["UsedLLMProvider"] = "{{this.UsedLLMProvider}}",
|
||||
|
||||
["Host"] = "{{this.Host}}",
|
||||
["Hostname"] = "{{EscapeLuaString(this.Hostname)}}",
|
||||
["Model"] = {
|
||||
["Id"] = "{{EscapeLuaString(this.Model.Id)}}",
|
||||
["DisplayName"] = "{{EscapeLuaString(this.Model.DisplayName ?? string.Empty)}}",
|
||||
},
|
||||
}
|
||||
""";
|
||||
}
|
||||
|
||||
private static string NormalizeId(string? id)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(id))
|
||||
return id;
|
||||
|
||||
return Guid.NewGuid().ToString();
|
||||
}
|
||||
|
||||
private static string EscapeLuaString(string? value)
|
||||
{
|
||||
if (string.IsNullOrEmpty(value))
|
||||
return string.Empty;
|
||||
|
||||
return value
|
||||
.Replace("\\", "\\\\")
|
||||
.Replace("\"", "\\\"")
|
||||
.Replace("\r", "\\r")
|
||||
.Replace("\n", "\\n");
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,95 +0,0 @@
|
||||
using AIStudio.Provider.HuggingFace;
|
||||
|
||||
namespace AIStudio.Tools.PluginSystem;
|
||||
|
||||
public static class ConfigurationExport
|
||||
{
|
||||
public static string ExportProvider(AIStudio.Settings.Provider provider)
|
||||
{
|
||||
if (provider == Settings.Provider.NONE)
|
||||
return string.Empty;
|
||||
|
||||
var hfInferenceProviderLine = provider.HFInferenceProvider is not HFInferenceProvider.NONE
|
||||
? $" [\"HFInferenceProvider\"] = \"{provider.HFInferenceProvider}\",\n"
|
||||
: string.Empty;
|
||||
|
||||
return $$"""
|
||||
CONFIG["LLM_PROVIDERS"][#CONFIG["LLM_PROVIDERS"]+1] = {
|
||||
["Id"] = "{{EscapeLuaString(NormalizeId(provider.Id))}}",
|
||||
["InstanceName"] = "{{EscapeLuaString(provider.InstanceName)}}",
|
||||
["UsedLLMProvider"] = "{{provider.UsedLLMProvider}}",
|
||||
|
||||
["Host"] = "{{provider.Host}}",
|
||||
["Hostname"] = "{{EscapeLuaString(provider.Hostname)}}",
|
||||
{{hfInferenceProviderLine}}
|
||||
["AdditionalJsonApiParameters"] = "{{EscapeLuaString(provider.AdditionalJsonApiParameters)}}",
|
||||
["Model"] = {
|
||||
["Id"] = "{{EscapeLuaString(provider.Model.Id)}}",
|
||||
["DisplayName"] = "{{EscapeLuaString(provider.Model.DisplayName ?? string.Empty)}}",
|
||||
},
|
||||
}
|
||||
""";
|
||||
}
|
||||
|
||||
public static string ExportEmbeddingProvider(Settings.EmbeddingProvider provider)
|
||||
{
|
||||
if (provider == Settings.EmbeddingProvider.NONE)
|
||||
return string.Empty;
|
||||
|
||||
return $$"""
|
||||
CONFIG["EMBEDDING_PROVIDERS"][#CONFIG["EMBEDDING_PROVIDERS"]+1] = {
|
||||
["Id"] = "{{EscapeLuaString(NormalizeId(provider.Id))}}",
|
||||
["Name"] = "{{EscapeLuaString(provider.Name)}}",
|
||||
["UsedLLMProvider"] = "{{provider.UsedLLMProvider}}",
|
||||
|
||||
["Host"] = "{{provider.Host}}",
|
||||
["Hostname"] = "{{EscapeLuaString(provider.Hostname)}}",
|
||||
["Model"] = {
|
||||
["Id"] = "{{EscapeLuaString(provider.Model.Id)}}",
|
||||
["DisplayName"] = "{{EscapeLuaString(provider.Model.DisplayName ?? string.Empty)}}",
|
||||
},
|
||||
}
|
||||
""";
|
||||
}
|
||||
|
||||
public static string ExportTranscriptionProvider(Settings.TranscriptionProvider provider)
|
||||
{
|
||||
if (provider == Settings.TranscriptionProvider.NONE)
|
||||
return string.Empty;
|
||||
|
||||
return $$"""
|
||||
CONFIG["TRANSCRIPTION_PROVIDERS"][#CONFIG["TRANSCRIPTION_PROVIDERS"]+1] = {
|
||||
["Id"] = "{{EscapeLuaString(NormalizeId(provider.Id))}}",
|
||||
["Name"] = "{{EscapeLuaString(provider.Name)}}",
|
||||
["UsedLLMProvider"] = "{{provider.UsedLLMProvider}}",
|
||||
|
||||
["Host"] = "{{provider.Host}}",
|
||||
["Hostname"] = "{{EscapeLuaString(provider.Hostname)}}",
|
||||
["Model"] = {
|
||||
["Id"] = "{{EscapeLuaString(provider.Model.Id)}}",
|
||||
["DisplayName"] = "{{EscapeLuaString(provider.Model.DisplayName ?? string.Empty)}}",
|
||||
},
|
||||
}
|
||||
""";
|
||||
}
|
||||
|
||||
private static string NormalizeId(string? id)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(id))
|
||||
return id;
|
||||
|
||||
return Guid.NewGuid().ToString();
|
||||
}
|
||||
|
||||
private static string EscapeLuaString(string? value)
|
||||
{
|
||||
if (string.IsNullOrEmpty(value))
|
||||
return string.Empty;
|
||||
|
||||
return value
|
||||
.Replace("\\", "\\\\")
|
||||
.Replace("\"", "\\\"")
|
||||
.Replace("\r", "\\r")
|
||||
.Replace("\n", "\\n");
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user