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