Comment le score d’indices de générateur IA est calculé
D’où viennent les points
Le détecteur ne lit que deux champs de métadonnées, Creator et Producer, en privilégiant leur version XMP lorsqu’elle existe. Il les réunit, met le texte en minuscules et y cherche chaque nom de son catalogue de logiciels comme une simple sous-chaîne. Chaque entrée du catalogue associée à l’IA ajoute des points. Deux règles supplémentaires ne s’appliquent que si au moins un point a déjà été attribué : l’absence d’Author ajoute 10 points et l’absence de Title en ajoute 5. Enfin, quelques mots présents dans ces deux champs ajoutent quelques points, quel que soit le score.
| Règle | Points | Noms du catalogue ou mots concernés |
|---|---|---|
| Générateur fortement associé à l’IA | 40 chacun | ReportLab, PyPDF, PyPDF2, pdfplumber, WeasyPrint, pdf-lib, PDFKit, Puppeteer, Playwright ; ainsi que les mots OpenAI, Anthropic, Claude, ChatGPT, GPT, Gemini, Bard, Copilot |
| Générateur moyennement associé à l’IA | 20 chacun | FPDF, FPDF2, jsPDF, Headless Chrome |
| Générateur faiblement associé à l’IA | 10 chacun | pdfmake, wkhtmltopdf |
| Champ Author vide | 10 | Uniquement si le score est déjà supérieur à zéro |
| Champ Title vide | 5 | Uniquement si le score est déjà supérieur à zéro |
| Mots dans Creator ou Producer | 5 ou 10 | python 5, script 5, api 5, automated 10, generated 10 |
Du score au niveau
Le total est plafonné à 100. Un score de 0 correspond au niveau « Aucun indice », de 1 à 24 à « Peu d’indices », de 25 à 49 à « Quelques indices » et à partir de 50 à « Indices forts ». Dès 25, le fichier est considéré comme présentant des indices de générateur IA : un avertissement s’ajoute alors aux contrôles de base et la valeur « État du document » du rapport complet est plafonnée à 65. Le score compte des indices trouvés ; ce n’est pas une probabilité qu’une personne ou un modèle ait rédigé quoi que ce soit.
Exemple de calcul : un fichier dont le champ Producer indique ReportLab
Producer : ReportLab PDF Library - www.reportlab.com Creator, Author, Title : vides ReportLab reconnu (association forte) +40 Author vide, score déjà supérieur à zéro +10 Title vide, score déjà supérieur à zéro +5 Total 55 -> Indices forts Résumé renvoyé : « Strong AI-generator indicators (risk score 55/100). Created using ReportLab, which AI assistants often use. This is not proof the content was written by AI. »
Scores mesurés pour des valeurs Producer courantes
Un même producteur peut obtenir un score différent selon que le fichier contient aussi un auteur et un titre. Les deux cas sont indiqués.
| Texte Creator / Producer testé | Avec auteur et titre | Sans auteur ni titre |
|---|---|---|
| Microsoft Word / Microsoft: Print To PDF | 0, aucun indice | 0, aucun indice |
| Writer / LibreOffice 24.2 | 0, aucun indice | 0, aucun indice |
| LaTeX with hyperref / pdfTeX-1.40.25 | 0, aucun indice | 0, aucun indice |
| TCPDF 6.7.5 (http://www.tcpdf.org) | 0, aucun indice | 0, aucun indice |
| GPL Ghostscript 10.08.0 | 5, peu d’indices | 5, peu d’indices |
| FPDF 1.86 | 20, peu d’indices | 35, quelques indices |
| wkhtmltopdf 0.12.6 / Qt 4.8.7 | 10, peu d’indices | 25, quelques indices |
| WeasyPrint 61.2 | 40, quelques indices | 55, indices forts |
| pdf-lib (https://github.com/Hopding/pdf-lib) | 40, quelques indices | 55, indices forts |
| PyPDF2 | 80, indices forts | 95, indices forts |
Particularités de la recherche par sous-chaîne
- Les noms qui se chevauchent comptent deux fois.
PyPDF2contientpypdf: il correspond donc à la fois aux entrées PyPDF et PyPDF2, soit 40 + 40, plus 15 pour l’auteur et le titre vides, ce qui donne 95. - Un mot compris dans un mot plus long compte aussi. La valeur Producer de Ghostscript rapporte 5 points, car « Ghostscript » contient « script ».
- Un nom présent n’importe où dans l’un des deux champs compte, y compris dans un Producer personnalisé comme « Report generated by API », qui a obtenu 15 points grâce aux seuls mots « generated » et « api ».
- Seuls ces deux champs sont lus. Le texte des pages, les polices, les images et le style d’écriture ne jouent aucun rôle dans le score.
Faux positifs et faux négatifs
De nombreux systèmes ordinaires utilisent les bibliothèques signalées. Des plateformes de facturation génèrent leurs factures avec Chrome headless, des serveurs de rapports utilisent ReportLab ou WeasyPrint, et des applications web assemblent leurs PDF avec pdf-lib. Notre facture de test, avec HeadlessChrome comme Creator, Skia/PDF comme Producer, un titre mais pas d’auteur, a obtenu 30 points : assez pour être comptée comme présentant des indices, alors que rien dans ce fichier ne fait intervenir un modèle de langage.
L’inverse arrive aussi. Un texte rédigé par un assistant IA, collé dans un traitement de texte puis exporté normalement, porte le nom de ce traitement de texte et obtient 0. Les métadonnées peuvent être supprimées ou réécrites en quelques secondes. Un score de 0 signifie que les champs du générateur ne contiennent aucun indice connu ; il ne dit rien de l’auteur du texte.
Utiliser le résultat de façon responsable
Considérez un score élevé comme une invitation à demander comment le document a été produit, et non comme une accusation. Les éléments les plus utiles se trouvent généralement en dehors du fichier : la méthode que l’expéditeur dit avoir suivie, des versions de travail antérieures ou l’historique des versions dans le système d’où provient le document. Si vous devez évaluer le texte lui-même, extrayez-le et lisez-le ; ce détecteur ne s’en charge pas.
Dernière mise à jour : . Les pondérations et les seuils proviennent du code source du détecteur. Les scores des tableaux ont été obtenus le 12 octobre 2026 en exécutant le détecteur en local sur des PDF synthétiques et sur des valeurs Creator et Producer saisies à la main ; ces chaînes sont des entrées de test, et non des valeurs lues dans des fichiers créés avec ces produits.