package com.example.service.base; import com.example.dto.dialogflow.base.DetectIntentRequestDTO; import com.example.dto.dialogflow.base.DetectIntentResponseDTO; import reactor.core.publisher.Mono; /** * Common interface for intent detection services. * This abstraction allows switching between different intent detection implementations * (e.g., Dialogflow, RAG) without changing dependent services. */ public interface IntentDetectionService { /** * Detects user intent and generates a response. * * @param sessionId The session identifier for this conversation * @param request The request containing user input and context parameters * @return A Mono of DetectIntentResponseDTO with the generated response */ Mono detectIntent( String sessionId, DetectIntentRequestDTO request ); }