feat: (BETA) Amélioration de l'assistant IA logisticien (Gemini) et support des documents

- **Amélioration de l'IA (Cloud Functions)** :
    - Mise à jour du modèle vers `gemini-3.1-flash-lite` et augmentation de la limite des résultats de recherche à 50.
    - Optimisation de la gestion des outils : augmentation du nombre d'appels simultanés (`MAX_TOOL_CALLS_PER_ITERATION`) à 40.
    - Refonte du système de recherche d'équipements avec une stratégie en deux passes (recherche précise puis catégorielle avec normalisation agressive).
    - Nouvelles consignes strictes pour la gestion des unités uniques (quantité de 1 par ID) et priorité aux flight cases (containers).
    - Ajout d'une gestion de retry avec temporisation pour les erreurs de quota (429) et de surcharge (503).
    - Support de l'analyse de documents joints (devis, listes) envoyés en `inlineData`.

- **Interface de l'Assistant (`AiEquipmentAssistantDialog`)** :
    - Ajout de la possibilité de joindre des documents (PDF, images, texte) via `FilePicker` pour analyse par l'IA.
    - Implémentation d'une vue de logs de debug détaillée pour suivre le raisonnement de l'IA et les appels d'outils.
    - Amélioration visuelle de la discussion : bulles de message stylisées et structuration automatique des réponses (sections "Matériel ajouté" vs "Matériel non trouvé").
    - Nouvelles options de confirmation : "Tout ajouter" ou "Ajouter sans alternatives".

- **Modèles et Services** :
    - Mise à jour de `EventEquipment` pour inclure un champ `rationale` (justification du choix de l'équipement).
    - Correction dans `EventAssignedEquipmentSection` pour ajouter automatiquement les équipements enfants lors de l'ajout d'un container proposé par l'IA.
    - Ajout de la gestion des logs et des documents dans `AiEquipmentAssistantService`.

- **UI Divers** :
    - Mise à jour de `EquipmentFormPage` pour clarifier le comportement de l'identifiant (auto-génération recommandée).
This commit is contained in:
ElPoyo
2026-05-25 20:33:59 +02:00
parent 89ab3673c4
commit 7fc28f4374
6 changed files with 668 additions and 121 deletions
+3 -3
View File
@@ -163,11 +163,11 @@ class _EquipmentFormPageState extends State<EquipmentFormPage> {
TextFormField(
controller: _identifierController,
decoration: InputDecoration(
labelText: 'Identifiant *',
labelText: 'Identifiant (Laissez vide pour auto-génération) *',
border: const OutlineInputBorder(),
prefixIcon: const Icon(Icons.tag),
hintText: isEditing ? null : 'Laissez vide pour générer automatiquement',
helperText: isEditing ? 'Non modifiable' : 'Format auto: {Marque4Chars}_{Modèle}',
hintText: isEditing ? null : 'Auto-attribué par défaut',
helperText: isEditing ? 'Non modifiable' : 'Génération auto recommandée basée sur Marque/Modèle',
),
enabled: !isEditing,
validator: (value) {