mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-02-12 11:21:38 +00:00
96 lines
3.8 KiB
C#
96 lines
3.8 KiB
C#
|
|
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");
|
||
|
|
}
|
||
|
|
}
|