// Services/Interfaces/IAiAnalysisService.cs
using Services.AIViewModel;
namespace Services.Interaces
{
public interface IAiAnalysisService
{
#region Azure Language Service Methods
///
/// Analyzes sentiment of response text using Azure Language Service
///
Task AnalyzeSentimentAsync(string text);
///
/// Extracts key phrases and workplace factors from response text
///
Task ExtractKeyPhrasesAsync(string text);
///
/// Removes PII (Personally Identifiable Information) from response text
///
Task AnonymizeTextAsync(string text);
///
/// Detects entities in text (workplace factors, departments, roles, etc.)
///
Task> DetectEntitiesAsync(string text);
#endregion
#region Azure OpenAI Methods
///
/// Assesses mental health risk level using GPT-3.5 Turbo
///
Task AssessMentalHealthRiskAsync(string anonymizedText, string questionContext);
///
/// Generates workplace insights and intervention recommendations
///
Task> GenerateWorkplaceInsightsAsync(string anonymizedText, string questionContext);
///
/// Creates executive summary for questionnaire analysis
///
Task GenerateExecutiveSummaryAsync(List analysisResults);
///
/// Categorizes responses into mental health themes
///
Task> CategorizeResponseAsync(string anonymizedText);
#endregion
#region Combined Analysis Methods
///
/// Performs complete AI analysis on a single response (both Azure services)
///
Task AnalyzeCompleteResponseAsync(AnalysisRequest request);
///
/// Analyzes multiple responses for a specific question
///
Task> AnalyzeQuestionResponsesAsync(int questionId, List requests);
///
/// Generates comprehensive analysis overview for entire questionnaire
///
Task GenerateQuestionnaireOverviewAsync(int questionnaireId);
///
/// Batch processes multiple responses efficiently
///
Task> BatchAnalyzeResponsesAsync(List requests);
#endregion
#region Mental Health Specific Methods
///
/// Identifies responses requiring immediate attention (high risk)
///
Task> IdentifyHighRiskResponsesAsync(int questionnaireId);
///
/// Generates mental health trends across time periods
///
Task> AnalyzeMentalHealthTrendsAsync(int questionnaireId, DateTime fromDate, DateTime toDate);
///
/// Compares mental health metrics between departments/teams
///
Task> CompareTeamMentalHealthAsync(int questionnaireId, List teamIdentifiers);
///
/// Generates intervention recommendations based on overall analysis
///
Task> GenerateInterventionRecommendationsAsync(int questionnaireId);
#endregion
#region Reporting Methods
///
/// Creates detailed analysis report for specific questionnaire
///
Task GenerateDetailedAnalysisReportAsync(int questionnaireId);
///
/// Generates anonymized data export for further analysis
///
Task> ExportAnonymizedAnalysisAsync(int questionnaireId);
///
/// Creates management dashboard summary
///
Task GenerateManagementDashboardAsync(int questionnaireId);
#endregion
#region Utility Methods
///
/// Tests connection to Azure Language Service
///
Task TestAzureLanguageServiceConnectionAsync();
///
/// Tests connection to Azure OpenAI Service
///
Task TestAzureOpenAIConnectionAsync();
///
/// Validates analysis request before processing
///
Task ValidateAnalysisRequestAsync(AnalysisRequest request);
///
/// Gets analysis service health status
///
Task> GetServiceHealthStatusAsync();
#endregion
}
}