48 lines
1.5 KiB
C#
48 lines
1.5 KiB
C#
|
|
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;
|
|||
|
|
/// <summary>S2.0: 启用本地AI内存分析(无监督+监督)</summary>
|
|||
|
|
public bool EnableLocalAI { get; set; } = true;
|
|||
|
|
/// <summary>S2.0: 启用大模型辅助研判</summary>
|
|||
|
|
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 }
|
|||
|
|
};
|
|||
|
|
}
|