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; } }