📊 Statistiques
📋 Événements récents
| Date | Type | Source | Format | Utilisateur | Fichier | Tokens in | Tokens out | Coût $ |
|---|
🔌 API & Services
.env + docker compose up -d --force-recreate ocr-service backend
.env + docker compose up -d --force-recreate backend speech-service
📧 Collecte Mail IMAP
🎛️ Feature Flags
📦 Catalogue — Pièces & dimensions
config/catalog/items.json). Toute modification est écrite sur disque puis
rechargée immédiatement (backend + ocr-service), sans redéploiement.
| Nom | Description | Catégorie | Dimensions | Connecteurs | Path CAMduct | Fichier ITM | Spec | Statut | Actions |
|---|---|---|---|---|---|---|---|---|---|
| Chargement... | |||||||||
🧠 Prompt IA
Vous pouvez utiliser le placeholder
{catalog_section} pour injecter automatiquement le catalogue CAMduct.
⚙️ Règles Python
La fonction
apply_all_rules(items) doit être présente dans le code.
📄 Annotation HVAC — Label Studio
- Uploadez un PDF ci-dessus → les pages apparaissent dans Label Studio
- Dans Label Studio, sélectionnez une tâche (page)
- Dessinez un rectangle autour de chaque pièce HVAC visible
- Sélectionnez le type (Gaine, Coude-90, Transfo...)
- Saisissez les cotes dans les champs Largeur / Hauteur / Longueur
- Validez → la tâche est marquée comme annotée
- Répétez jusqu'à ~50 exemples par type de pièce
- Export YOLO depuis LS → entraînement du modèle
🏷️ Label Studio
Workflow : Envoyer PDF (onglet 📄 Annotation) → Créer projet HVAC (ci-dessous) → Annoter dans Label Studio → Exporter annotations.
🔲 Plénums — Paramètres de chiffrage
Formule : Prix = Matière (surface × €/m²) + MO (temps × taux horaire).
Les modifications sont enregistrées immédiatement et prises en compte au prochain calcul.
💾 Sauvegarde & Restauration
Les pièces jointes binaires des mails ne sont pas incluses.
Génère un fichier faclim_backup_YYYYMMDD_HHMMSS.zip contenant l'état complet de la configuration et des bases de données.
Sélectionne un fichier .zip créé par cet outil.
📚 Documentation Technique
Plateforme unifiée sur devis.faclim.fr (VPS OVH). Tous les services tournent en Docker Compose derrière nginx (HTTPS Let's Encrypt).
| Service | Port interne | URL externe | Rôle |
|---|---|---|---|
| frontend | 80/443 | devis.faclim.fr/ | nginx — UI statique + proxy |
| backend | 8000 | /api/* | FastAPI — auth, CAMduct, devis Odoo, admin |
| ocr-service | 8001 | /api/ocr/* | FastAPI — pipeline OCR (Tesseract + Claude) |
| speech-service | 8002 | /api/speech/* | FastAPI — reconnaissance vocale (Whisper/OpenAI) |
| sketch-service | 8003 | /sketch/* | ML Backend LS — YOLOv8n détection HVAC |
| label-studio | 8080 | /label-studio/ | Label Studio — annotation dessins HVAC |
| dozzle | 8080 | /logs/ (basic auth) | UI logs Docker temps réel |
Le document uploadé est d'abord classifié, puis routé vers le bon extracteur.
Post-traitement des items (rules/__init__.py) :
- Correction Transfo ↔ Transfo-Circ (règle 1 : nombre de cotes de sortie)
- Suppression des offsets inventés par l'OCR (strip_ocr_offsets)
- Normalisation des noms (dictionnaire → noms catalogue CAMduct)
État dataset (2026-06-15) : 11 feuilles · 158 bboxes
Seuil fiabilité : ~50 bboxes/classe. Ré-entraîner après chaque session d'annotation.
→ Annotation humaine
→ ▶ Entraîner YOLO
→ hvac_yolo.pt s'améliore
→ sketch-service (YOLO)
→ Claude Vision (cotes)
→ CAMduct → Devis
LS n'est jamais dans le chemin client. Il sert uniquement à construire et améliorer le modèle YOLO.
| Bouton | Ce qu'il fait | Durée | Quand |
|---|---|---|---|
| ▶ Entraîner YOLO | Export toutes les annotations → dataset → 100 epochs depuis zéro → sauvegarde modèle → auto-prédit toutes les tâches LS | ~30 min | Après avoir accumulé 5-10 corrections/annotations |
| 🔮 Prédire toutes les tâches | Prend le modèle actuel (inchangé) → infère sur toutes les tâches → remplace les prédictions dans LS | ~1-2 min | Rafraîchir après redémarrage serveur ou pour voir l'effet sans re-entraîner |
Les prédictions YOLO (Predictions dans LS) ne sont jamais utilisées pour l'entraînement.
Seul ce que tu soumets en tant qu'Annotation compte. Si tu copies une prédiction erronée sans la corriger et que tu fais Submit, l'erreur entre dans le dataset et dégrade le modèle.
C'est la façon la plus efficace de progresser : corriger les erreurs du modèle est 5× plus rapide que d'annoter depuis zéro.
-
Envoyer un PDF — onglet 📄 Annotation :
Upload → pages converties → tâches créées dans LS. -
Ouvrir la tâche dans LS — label-studio ↗ :
Les prédictions YOLO se chargent automatiquement en mode édition. Tu peux corriger directement sans repartir de zéro. -
Corriger les erreurs :
Mauvais label → clic sur la bbox → changer le label
Bbox mal placée → déplacer / redimensionner
Bbox manquante → en tracer une nouvelle
Fausse détection → supprimer la bbox
Les cotes sont optionnelles — YOLO n'en a pas besoin. - Submit → devient une annotation propre dans le dataset.
-
Après 5-10 feuilles corrigées → bouton "▶ Entraîner YOLO"
Le modèle réapprend. Les prédictions suivantes sont meilleures. La boucle s'accélère.
Règle : Gaine-Firmac → annoter comme Gaine. Si cotes remplies : recopier tel quel (4.60ml, Ø315). Repères bulle : (XX).
| Rôle | Condition Odoo | Accès |
|---|---|---|
| Client portail | share=True | Pricing CAMduct, OCR, création devis |
| Employé Faclim | share=False | Tout ci-dessus + module Mail |
| Admin | email = damien@faclim.fr | Tout ci-dessus + admin (sketch, LS, config, OCR) |
Workflow local → serveur :
Commandes utiles :