Le mode proactif marque ses tours comme déclenchés par le système
AssistantService.chat porte isAutoTriggered, et geo_beacon_trigger_service le passe à true. Sans lui, le prompt que le service s'écrit à lui-même atterrissait dans VisitorQuestion, donc dans « Ce que demandent vos visiteurs », et gonflait le bloc des questions sans réponse. Les jetons restent comptés côté serveur. C'était le dernier bloquant avant d'activer le mode chez un client. flutter analyze lib sans erreur, flutter build apk --debug --flavor dev vert. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
e9e68942c9
commit
6e6b40e185
@ -36,13 +36,22 @@ class AssistantService {
|
|||||||
required String message,
|
required String message,
|
||||||
String? configurationId,
|
String? configurationId,
|
||||||
bool isVoice = false,
|
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<AssistantResponse> chatWithAppType({
|
Future<AssistantResponse> chatWithAppType({
|
||||||
required String message,
|
required String message,
|
||||||
String? configurationId,
|
String? configurationId,
|
||||||
AppType appType = AppType.Mobile,
|
AppType appType = AppType.Mobile,
|
||||||
bool isVoice = false,
|
bool isVoice = false,
|
||||||
|
bool isAutoTriggered = false,
|
||||||
}) async {
|
}) async {
|
||||||
_resetInactivityTimer();
|
_resetInactivityTimer();
|
||||||
|
|
||||||
@ -54,6 +63,7 @@ class AssistantService {
|
|||||||
language: visitAppContext.language?.toUpperCase() ?? 'FR',
|
language: visitAppContext.language?.toUpperCase() ?? 'FR',
|
||||||
history: List.from(_history),
|
history: List.from(_history),
|
||||||
isVoice: isVoice,
|
isVoice: isVoice,
|
||||||
|
isAutoTriggered: isAutoTriggered,
|
||||||
);
|
);
|
||||||
|
|
||||||
final AiChatResponse? response;
|
final AiChatResponse? response;
|
||||||
|
|||||||
@ -244,10 +244,15 @@ class GeoBeaconTriggerService {
|
|||||||
debugPrint('[GeoBeaconTriggerService] Trigger: $triggerId');
|
debugPrint('[GeoBeaconTriggerService] Trigger: $triggerId');
|
||||||
|
|
||||||
try {
|
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(
|
final response = await _assistantService!.chat(
|
||||||
message: prompt,
|
message: prompt,
|
||||||
configurationId: _visitAppContext?.configuration?.id,
|
configurationId: _visitAppContext?.configuration?.id,
|
||||||
isVoice: true,
|
isVoice: true,
|
||||||
|
isAutoTriggered: true,
|
||||||
);
|
);
|
||||||
|
|
||||||
if (response.reply.isNotEmpty) {
|
if (response.reply.isNotEmpty) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user