Niveau de confiance — Brut
Préréglage « original »
Aucun traitement appliqué. L'image est exactement ce qui est sorti de l'appareil photo. Éligible aux deux badges de confiance.
Étude de cas technique / Proveo
Les entrepreneurs de services vendent avec des photos avant/après. Le problème : n'importe qui peut les falsifier. Proveo avait besoin d'une couche de confiance vérifiable par conception.
Les photos avant/après sont le principal outil de vente pour les entrepreneurs de services. Elles sont aussi la chose la plus facile à falsifier. Un entrepreneur peut copier le travail de quelqu'un d'autre, le revendiquer comme le sien et construire un historique entièrement fabriqué. Les clients qui consultent un portfolio ne peuvent pas faire la différence. Il n'y a pas de métadonnées à inspecter, pas d'horodatage fiable. La réponse naïve est un filigrane ou un horodatage. Aucun ne prouve quoi que ce soit. Les filigranes peuvent être rognés, les horodatages peuvent être ajoutés en Photoshop. Le problème n'est pas l'étiquetage — c'est la preuve.
La première couche IA résout un problème UX : les entrepreneurs qui téléchargent deux photos ne devraient pas avoir à étiqueter manuellement laquelle est « avant » et laquelle est « après ». GPT-4o Vision analyse les deux images simultanément et identifie laquelle montre l'état non traité et laquelle montre le résultat final. Le modèle détecte également la catégorie de service (lavage sous pression, peinture, paysagisme, etc.) et génère un titre de travail suggéré localisé dans la langue préférée de l'entrepreneur. La limitation de débit est étendue à l'espace de travail (30 requêtes/heure partagées entre tous les membres) pour éviter la multiplication des coûts IA.
Chaque préréglage d'amélioration qu'un entrepreneur peut appliquer à ses photos est classifié côté serveur dans l'un des trois niveaux de confiance. La classification est déterministe, pas pilotée par IA :
Niveau de confiance — Brut
Préréglage « original »
Aucun traitement appliqué. L'image est exactement ce qui est sorti de l'appareil photo. Éligible aux deux badges de confiance.
Niveau de confiance — Corrigé
bright_clean, cool_professional, job_site_clean, high_def, studio_light, definition
Corrections d'exposition, netteté ou balance des blancs qui n'altèrent pas la scène. Améliorent la lisibilité sans déformer le travail.
Niveau de confiance — Stylisé
warm, dramatic, daylight_pop, soft_glow, vivid, vintage, et 10+ autres
Traitements esthétiques qui changent l'ambiance ou l'apparence. L'éligibilité au badge de confiance est supprimée.
Le choix de conception clé : les préréglages inconnus tombent par défaut dans « stylisé ». Les nouveaux préréglages ne peuvent pas accidentellement hériter de l'éligibilité au badge. La confiance doit être accordée explicitement dans le registre côté serveur.
Les photos s'uploadent directement du navigateur vers Cloudinary. Le serveur Proveo ne reçoit jamais les octets du fichier — il obtient seulement l'URL Cloudinary après la fin de l'upload. Si le serveur ne voit jamais les octets, comment peut-il savoir ce qui a été uploadé ? La réponse : calculer les preuves avant l'upload. Avant que chaque photo quitte le navigateur, le client calcule : — Hash SHA-256 des octets bruts du fichier, via l'API Web Crypto (natif au navigateur) — Méthode de capture : 'guided' (prise dans l'appli), 'upload' (depuis la pellicule), ou 'import' — Horodatage de capture — depuis EXIF quand disponible, avec repli sur File.lastModified — Signal d'appareil — chaîne user-agent tronquée — ID de session de capture guidée — token aléatoire par session Ce payload de provenance signé est envoyé à l'API avec les données de comparaison. Le serveur valide chaque champ et dégrade tout ce qui est malformé vers la méthode la plus faible.
Avec l'état de preuve et la provenance en main, le résolveur de badge effectue cinq vérifications en séquence. Toutes les cinq doivent passer pour le niveau supérieur — « Vérifié Authentique » :
Capture guidée
Les deux photos prises dans l'appli, pas depuis la pellicule
État de preuve brut
Aucune amélioration appliquée (préréglage original)
Écart de temps minimum
> 2 secondes entre avant et après
Écart de temps maximum
< 12 heures entre avant et après
Unicité SHA-256
Les octets avant et après ne sont pas identiques
Toute vérification échouée dégrade vers « Vérifié Non Filtré » ou supprime le badge. La fenêtre d'horodatage — 2 secondes minimum, 12 heures maximum — est conçue autour de la cadence réelle des chantiers. La décision de badge est entièrement déterministe. L'IA identifie les preuves ; l'algorithme décide du niveau.
Proveo utilise deux modèles délibérément, pour des raisons différentes : GPT-4o gère le raisonnement visuel — identifier avant vs. après, détecter la catégorie de service, générer des légendes depuis l'image composite. Claude gère toutes les tâches de langage et de raisonnement — explications d'audit de confiance, copilote d'opérations, réponses du centre d'aide, guidage d'intégration. Claude produit une prose lisible par les entrepreneurs plutôt qu'un texte IA générique. L'agent d'audit de confiance (Claude) est l'exemple le plus clair de la séparation : il lit le niveau de badge calculé et les signaux de provenance, puis explique le résultat à l'entrepreneur en langage simple. Claude interprète les preuves. Il ne les décide pas.
L'IA identifie ce qu'il y a dans les photos. Le code déterministe décide si ces photos sont dignes de confiance. Nous n'avons jamais mélangé ces deux responsabilités.
C'est le type de travail d'architecture que nous faisons — des systèmes où l'IA et la logique déterministe sont chacune utilisées là où elles sont appropriées, pas de manière interchangeable.