namespace MemScanEDR.Models; public enum AIProvider { Heuristic, OpenAICompatible, Claude, Local } public class AIConfig { public AIProvider Provider { get; set; } = AIProvider.Heuristic; public string ApiKey { get; set; } = ""; public string BaseUrl { get; set; } = ""; public string Model { get; set; } = ""; public int MaxTokens { get; set; } = 2000; public double Temperature { get; set; } = 0.3; public int Timeout { get; set; } = 30; /// S2.0: 启用本地AI内存分析(无监督+监督) public bool EnableLocalAI { get; set; } = true; /// S2.0: 启用大模型辅助研判 public bool EnableLLMAssist { get; set; } = false; public static AIConfig DefaultFor(AIProvider provider) => provider switch { AIProvider.OpenAICompatible => new AIConfig { Provider = AIProvider.OpenAICompatible, BaseUrl = "https://api.openai.com/v1", Model = "gpt-4o-mini" }, AIProvider.Claude => new AIConfig { Provider = AIProvider.Claude, BaseUrl = "https://api.anthropic.com", Model = "claude-3-5-sonnet-20241022" }, AIProvider.Local => new AIConfig { Provider = AIProvider.Local, BaseUrl = "http://127.0.0.1:11434", Model = "llama3" }, _ => new AIConfig { Provider = AIProvider.Heuristic } }; }