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.Dialogs;
|
||||||
using AIStudio.Settings;
|
using AIStudio.Settings;
|
||||||
using AIStudio.Tools.PluginSystem;
|
|
||||||
|
|
||||||
using Microsoft.AspNetCore.Components;
|
using Microsoft.AspNetCore.Components;
|
||||||
|
|
||||||
@ -121,7 +120,7 @@ public partial class SettingsPanelEmbeddings : SettingsPanelBase
|
|||||||
if (provider == EmbeddingProvider.NONE)
|
if (provider == EmbeddingProvider.NONE)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var luaCode = ConfigurationExport.ExportEmbeddingProvider(provider);
|
var luaCode = provider.ExportAsConfigurationSection();
|
||||||
if (string.IsNullOrWhiteSpace(luaCode))
|
if (string.IsNullOrWhiteSpace(luaCode))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -136,4 +135,4 @@ public partial class SettingsPanelEmbeddings : SettingsPanelBase
|
|||||||
|
|
||||||
await this.AvailableEmbeddingProvidersChanged.InvokeAsync(this.AvailableEmbeddingProviders);
|
await this.AvailableEmbeddingProvidersChanged.InvokeAsync(this.AvailableEmbeddingProviders);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,7 +3,6 @@ using System.Diagnostics.CodeAnalysis;
|
|||||||
using AIStudio.Dialogs;
|
using AIStudio.Dialogs;
|
||||||
using AIStudio.Provider;
|
using AIStudio.Provider;
|
||||||
using AIStudio.Settings;
|
using AIStudio.Settings;
|
||||||
using AIStudio.Tools.PluginSystem;
|
|
||||||
|
|
||||||
using Microsoft.AspNetCore.Components;
|
using Microsoft.AspNetCore.Components;
|
||||||
|
|
||||||
@ -140,7 +139,7 @@ public partial class SettingsPanelProviders : SettingsPanelBase
|
|||||||
if (provider == AIStudio.Settings.Provider.NONE)
|
if (provider == AIStudio.Settings.Provider.NONE)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var luaCode = ConfigurationExport.ExportProvider(provider);
|
var luaCode = provider.ExportAsConfigurationSection();
|
||||||
if (string.IsNullOrWhiteSpace(luaCode))
|
if (string.IsNullOrWhiteSpace(luaCode))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -189,4 +188,4 @@ public partial class SettingsPanelProviders : SettingsPanelBase
|
|||||||
this.SettingsManager.ConfigurationData.LLMProviders.CustomConfidenceScheme[llmProvider] = level;
|
this.SettingsManager.ConfigurationData.LLMProviders.CustomConfidenceScheme[llmProvider] = level;
|
||||||
await this.SettingsManager.StoreSettings();
|
await this.SettingsManager.StoreSettings();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
using AIStudio.Dialogs;
|
using AIStudio.Dialogs;
|
||||||
using AIStudio.Settings;
|
using AIStudio.Settings;
|
||||||
using AIStudio.Tools.PluginSystem;
|
|
||||||
|
|
||||||
using Microsoft.AspNetCore.Components;
|
using Microsoft.AspNetCore.Components;
|
||||||
|
|
||||||
@ -121,7 +120,7 @@ public partial class SettingsPanelTranscription : SettingsPanelBase
|
|||||||
if (provider == TranscriptionProvider.NONE)
|
if (provider == TranscriptionProvider.NONE)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
var luaCode = ConfigurationExport.ExportTranscriptionProvider(provider);
|
var luaCode = provider.ExportAsConfigurationSection();
|
||||||
if (string.IsNullOrWhiteSpace(luaCode))
|
if (string.IsNullOrWhiteSpace(luaCode))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -136,4 +135,4 @@ public partial class SettingsPanelTranscription : SettingsPanelBase
|
|||||||
|
|
||||||
await this.AvailableTranscriptionProvidersChanged.InvokeAsync(this.AvailableTranscriptionProviders);
|
await this.AvailableTranscriptionProvidersChanged.InvokeAsync(this.AvailableTranscriptionProviders);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -131,4 +131,42 @@ public sealed record EmbeddingProvider(
|
|||||||
model = new(id, displayName);
|
model = new(id, displayName);
|
||||||
return true;
|
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);
|
model = new(id, displayName);
|
||||||
return true;
|
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);
|
model = new(id, displayName);
|
||||||
return true;
|
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