using DramaLing.Api.Models.DTOs;
namespace DramaLing.Api.Services;
///
/// 分析服務介面,封裝 AI 分析的業務邏輯
///
public interface IAnalysisService
{
///
/// 智能分析英文句子,包含快取策略
///
/// 輸入文本
/// 分析選項
/// 分析結果
Task AnalyzeSentenceAsync(string inputText, AnalysisOptions options);
///
/// 檢查快取是否存在
///
/// 輸入文本
/// 分析選項
/// 是否有快取
Task HasCachedAnalysisAsync(string inputText, AnalysisOptions options);
///
/// 清除特定分析的快取
///
/// 輸入文本
/// 分析選項
/// 是否成功
Task ClearAnalysisCacheAsync(string inputText, AnalysisOptions options);
///
/// 取得分析統計資訊
///
/// 統計資訊
Task GetAnalysisStatsAsync();
}
///
/// 分析統計資訊
///
public class AnalysisStats
{
public int TotalAnalyses { get; set; }
public int CachedAnalyses { get; set; }
public double CacheHitRate => TotalAnalyses > 0 ? (double)CachedAnalyses / TotalAnalyses : 0;
public int AverageResponseTimeMs { get; set; }
public DateTime LastAnalysisAt { get; set; }
public Dictionary ProviderUsageStats { get; set; } = new();
}