121 lines
4.1 KiB
C#
121 lines
4.1 KiB
C#
namespace ChatRAG.Settings
|
|
{
|
|
/// <summary>
|
|
/// Configurações específicas para o ConfidenceAwareRAG
|
|
/// </summary>
|
|
public class ConfidenceAwareSettings
|
|
{
|
|
/// <summary>
|
|
/// Habilita/desabilita verificação de confiança
|
|
/// true = só responde com confiança, false = sempre responde (como hoje)
|
|
/// </summary>
|
|
public bool EnableConfidenceCheck { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// Modo restrito (critérios rigorosos) vs modo relaxado
|
|
/// </summary>
|
|
public bool UseStrictMode { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// Mostra informações de debug na resposta (confiança, tempo, etc.)
|
|
/// </summary>
|
|
public bool ShowDebugInfo { get; set; } = false;
|
|
|
|
/// <summary>
|
|
/// Domínio padrão quando não conseguir detectar automaticamente
|
|
/// </summary>
|
|
public string DefaultDomain { get; set; } = "TI";
|
|
|
|
/// <summary>
|
|
/// Mapeamento de palavras-chave para domínios (detecção automática)
|
|
/// </summary>
|
|
public Dictionary<string, string> DomainMappings { get; set; } = new()
|
|
{
|
|
["software"] = "TI",
|
|
["sistema"] = "TI",
|
|
["api"] = "TI",
|
|
["backend"] = "TI",
|
|
["frontend"] = "TI",
|
|
["database"] = "TI",
|
|
["funcionário"] = "RH",
|
|
["colaborador"] = "RH",
|
|
["employee"] = "RH",
|
|
["hr"] = "RH",
|
|
["financeiro"] = "Financeiro",
|
|
["contábil"] = "Financeiro",
|
|
["financial"] = "Financeiro",
|
|
["accounting"] = "Financeiro",
|
|
["teste"] = "QA",
|
|
["qualidade"] = "QA",
|
|
["quality"] = "QA",
|
|
["testing"] = "QA"
|
|
};
|
|
|
|
/// <summary>
|
|
/// Configuração de idiomas suportados
|
|
/// </summary>
|
|
public LanguageSettings Languages { get; set; } = new();
|
|
|
|
/// <summary>
|
|
/// Configurações de cache para prompts
|
|
/// </summary>
|
|
public CacheSettings Cache { get; set; } = new();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Configurações de idioma
|
|
/// </summary>
|
|
public class LanguageSettings
|
|
{
|
|
/// <summary>
|
|
/// Idioma padrão do sistema
|
|
/// </summary>
|
|
public string DefaultLanguage { get; set; } = "pt";
|
|
|
|
/// <summary>
|
|
/// Idiomas suportados
|
|
/// </summary>
|
|
public List<string> SupportedLanguages { get; set; } = new() { "pt", "en" };
|
|
|
|
/// <summary>
|
|
/// Auto-detectar idioma da pergunta
|
|
/// </summary>
|
|
public bool AutoDetectLanguage { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// Sempre responder no idioma detectado/solicitado, mesmo que prompts estejam em PT
|
|
/// </summary>
|
|
public bool AlwaysRespondInRequestedLanguage { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// Palavras-chave para detecção automática de idioma
|
|
/// </summary>
|
|
public Dictionary<string, List<string>> LanguageKeywords { get; set; } = new()
|
|
{
|
|
["en"] = new() { "what", "how", "why", "where", "when", "which", "who", "can", "could", "would", "should", "will", "the", "and", "or", "but", "system", "project", "document", "explain", "generate" },
|
|
["pt"] = new() { "que", "como", "por", "onde", "quando", "qual", "quem", "pode", "poderia", "deveria", "será", "o", "a", "e", "ou", "mas", "sistema", "projeto", "documento", "explique", "gere" }
|
|
};
|
|
}
|
|
|
|
/// <summary>
|
|
/// Configurações de cache
|
|
/// </summary>
|
|
public class CacheSettings
|
|
{
|
|
/// <summary>
|
|
/// Habilitar cache de prompts carregados
|
|
/// </summary>
|
|
public bool EnablePromptCache { get; set; } = true;
|
|
|
|
/// <summary>
|
|
/// Tempo de cache em minutos
|
|
/// </summary>
|
|
public int CacheExpirationMinutes { get; set; } = 30;
|
|
|
|
/// <summary>
|
|
/// Recarregar arquivos automaticamente quando modificados
|
|
/// </summary>
|
|
public bool AutoReloadOnFileChange { get; set; } = true;
|
|
}
|
|
}
|