diff --git a/lib/Services/assistantService.dart b/lib/Services/assistantService.dart index 0fb6af8..ef2c952 100644 --- a/lib/Services/assistantService.dart +++ b/lib/Services/assistantService.dart @@ -36,13 +36,22 @@ class AssistantService { required String message, String? configurationId, bool isVoice = false, - }) => chatWithAppType(message: message, configurationId: configurationId, isVoice: isVoice); + bool isAutoTriggered = false, + }) => chatWithAppType( + message: message, + configurationId: configurationId, + isVoice: isVoice, + isAutoTriggered: isAutoTriggered, + ); + /// [isAutoTriggered] : le tour vient du mode proactif, pas d'une question du visiteur. + /// Le serveur compte les jetons mais ne le journalise pas dans `VisitorQuestion`. Future chatWithAppType({ required String message, String? configurationId, AppType appType = AppType.Mobile, bool isVoice = false, + bool isAutoTriggered = false, }) async { _resetInactivityTimer(); @@ -54,6 +63,7 @@ class AssistantService { language: visitAppContext.language?.toUpperCase() ?? 'FR', history: List.from(_history), isVoice: isVoice, + isAutoTriggered: isAutoTriggered, ); final AiChatResponse? response; diff --git a/lib/Services/geo_beacon_trigger_service.dart b/lib/Services/geo_beacon_trigger_service.dart index f89a69b..6edb2d2 100644 --- a/lib/Services/geo_beacon_trigger_service.dart +++ b/lib/Services/geo_beacon_trigger_service.dart @@ -244,10 +244,15 @@ class GeoBeaconTriggerService { debugPrint('[GeoBeaconTriggerService] Trigger: $triggerId'); try { + // ⚠️ `isAutoTriggered` n'est pas cosmétique : sans lui, ce prompt — une consigne que + // le système s'écrit à lui-même — atterrissait dans `VisitorQuestion`, donc dans + // l'onglet « Ce que demandent vos visiteurs », et gonflait le bloc des questions + // sans réponse. Les jetons, eux, restent comptés côté serveur. final response = await _assistantService!.chat( message: prompt, configurationId: _visitAppContext?.configuration?.id, isVoice: true, + isAutoTriggered: true, ); if (response.reply.isNotEmpty) {