namespace ChatRAG.Settings
{
///
/// Configurações específicas para o ConfidenceAwareRAG
///
public class ConfidenceAwareSettings
{
///
/// Habilita/desabilita verificação de confiança
/// true = só responde com confiança, false = sempre responde (como hoje)
///
public bool EnableConfidenceCheck { get; set; } = true;
///
/// Modo restrito (critérios rigorosos) vs modo relaxado
///
public bool UseStrictMode { get; set; } = true;
///
/// Mostra informações de debug na resposta (confiança, tempo, etc.)
///
public bool ShowDebugInfo { get; set; } = false;
///
/// Domínio padrão quando não conseguir detectar automaticamente
///
public string DefaultDomain { get; set; } = "TI";
///
/// Mapeamento de palavras-chave para domínios (detecção automática)
///
public Dictionary 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"
};
///
/// Configuração de idiomas suportados
///
public LanguageSettings Languages { get; set; } = new();
///
/// Configurações de cache para prompts
///
public CacheSettings Cache { get; set; } = new();
}
///
/// Configurações de idioma
///
public class LanguageSettings
{
///
/// Idioma padrão do sistema
///
public string DefaultLanguage { get; set; } = "pt";
///
/// Idiomas suportados
///
public List SupportedLanguages { get; set; } = new() { "pt", "en" };
///
/// Auto-detectar idioma da pergunta
///
public bool AutoDetectLanguage { get; set; } = true;
///
/// Sempre responder no idioma detectado/solicitado, mesmo que prompts estejam em PT
///
public bool AlwaysRespondInRequestedLanguage { get; set; } = true;
///
/// Palavras-chave para detecção automática de idioma
///
public Dictionary> 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" }
};
}
///
/// Configurações de cache
///
public class CacheSettings
{
///
/// Habilitar cache de prompts carregados
///
public bool EnablePromptCache { get; set; } = true;
///
/// Tempo de cache em minutos
///
public int CacheExpirationMinutes { get; set; } = 30;
///
/// Recarregar arquivos automaticamente quando modificados
///
public bool AutoReloadOnFileChange { get; set; } = true;
}
}