namespace ChatBot.Models.Configuration
{
///
/// Configuration settings for AI service
///
public class AISettings
{
///
/// Temperature for AI response generation (0.0 to 2.0)
/// Lower values make responses more focused and deterministic
/// Higher values make responses more random and creative
///
public double Temperature { get; set; } = 0.7;
///
/// Path to the system prompt file
///
public string SystemPromptPath { get; set; } = "Prompts/system-prompt.txt";
///
/// System prompt content (loaded from file)
///
public string SystemPrompt { get; set; } = string.Empty;
///
/// Maximum number of retry attempts for failed requests
///
public int MaxRetryAttempts { get; set; } = 3;
///
/// Delay between retry attempts in milliseconds
///
public int RetryDelayMs { get; set; } = 1000;
///
/// Request timeout in seconds
///
public int RequestTimeoutSeconds { get; set; } = 60;
///
/// Enable gradual message history compression
///
public bool EnableHistoryCompression { get; set; } = true;
///
/// Maximum number of messages before compression starts
///
public int CompressionThreshold { get; set; } = 20;
///
/// Target number of messages after compression
///
public int CompressionTarget { get; set; } = 10;
///
/// Minimum message length to be considered for summarization (in characters)
///
public int MinMessageLengthForSummarization { get; set; } = 50;
///
/// Maximum length of summarized message (in characters)
///
public int MaxSummarizedMessageLength { get; set; } = 200;
///
/// Enable exponential backoff for retry attempts
///
public bool EnableExponentialBackoff { get; set; } = true;
///
/// Maximum retry delay in milliseconds
///
public int MaxRetryDelayMs { get; set; } = 30000;
///
/// Timeout for compression operations in seconds
///
public int CompressionTimeoutSeconds { get; set; } = 30;
///
/// Timeout for status check operations in seconds
///
public int StatusCheckTimeoutSeconds { get; set; } = 10;
}
}