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