Test de 7 modèles d’IA : Claude Opus 5, GPT-6 Astra, Gemini 3.1
7 modèles d'IA testés sur 4 tâches identiques : édition de texte, extraction de tableau PDF, génération de code Python et fenêtre de contexte.

Mise à jour (9 novembre 2026) : Claude Fable 5.2 et Mythos 5.2 sont sortis - prix, accès et benchmarks dans mon guide Claude Fable 5.2.
👁 117 lectures
Cet article est l’enregistrement brut d’une exécution du protocole de test Promptif (v1 du 16.09.2026). Chacun des 7 modèles a reçu des prompts identiques dans le même ordre, température 0, un seul appel par tâche, sans nouvelle tentative après une mauvaise réponse. L’évaluation est faite par PHP, pas par un autre modèle : comparaison de nombres, de cellules de tableau et exécution de code sur des vecteurs fixes. Ci-dessous le tableau récapitulatif, puis chaque tâche avec le prompt complet et la réponse brute de chaque modèle. Les échecs, réponses vides et dépassements de temps restent dans le tableau.
| Modèle | Édition sans modifier les nombres | Tableau PDF vers JSON | Code : validateur PESEL avec tests | Contexte (aiguille dans une botte de foin) |
|---|---|---|---|---|
| Claude Opus 5anthropic/claude-opus-5 | réussi6.2 s | 8/8 lignes5 s | 10/10 vecteurs8 s | erreur @8k - erreur @32k - 1/1 @128k |
| GPT-6 Astraopenai/gpt-6-astra | réussi4.9 s | 8/8 lignes7.4 s | 10/10 vecteurs17.4 s | hors test de contexte |
| Gemini 3.1 Progoogle/gemini-3.1-pro-preview | réussi19 s | 8/8 lignes16.8 s | 10/10 vecteurs17 s | hors test de contexte |
| Kimi K3moonshotai/kimi-k3 | réussi59.3 s | 8/8 lignes8.6 s | 10/10 vecteurs155.1 s | 2/2 @8k - 2/2 @32k - 2/2 @128k |
| DeepSeek V4 Prodeepseek/deepseek-v4-pro | réussi40.2 s | 8/8 lignes24.5 s | pas de réponse170 s | 2/2 @8k - 2/2 @32k - 2/2 @128k |
| Grok 4.6x-ai/grok-4.6 | réussi27.9 s | 8/8 lignes32 s | 10/10 vecteurs45.8 s | hors test de contexte |
| Qwen 3.8 Maxqwen/qwen3.8-max-0902 | réussi105.8 s | 8/8 lignes40.9 s | pas de réponse170 s | hors test de contexte |
Édition sans modifier les nombres
Le modèle reçoit un texte administratif avec trois fautes de frappe et des tournures lourdes. Il doit corriger le style et les fautes sans toucher à aucun nombre, date ou heure. L’évaluateur compare le multi-ensemble de nombres dans l’original et dans la réponse, vérifie les trois fautes et le format (texte seul, sans titres ni listes).
Prompt complet (identique pour chaque modèle)
Corrige le texte suivant en termes de style et de fautes : supprime les tournures administratives, corrige les erreurs et fautes de frappe, conserve le sens et toutes les informations. RÈGLES : - ne modifie aucun nombre, date ou heure ni leur notation (les chiffres restent des chiffres, ne transforme pas les nombres en mots, n'ajoute pas de nouveaux nombres, ne supprime pas ceux qui existent), - n'ajoute pas de titres, listes, commentaires ou explications, - retourne uniquement le texte corrigé en un ou deux paragraphes. TEXTE : W 2025 roku gmina Lipowo wydała na remonty dróg 14,3 mln zł, czyli o 2,1 mln zł więcej niż rok wcześniej. Najdroższa okazała się przebódowa ulicy Długiej, która kosztowała 3 850 000 zł za odcinek 1,8 km. W chwili obecnej radni zaplanowali na 2026 rok kwotę 16 mln zł, jednak skarbnik ostrzga, że przy inflacji na poziomie 4,7% realna wartość tej kwoty będzie niższa. W gminie mieszka 12 480 osób, a zarejestrowanych samochodów jest 7 912, więc na jednego mieszkanca przypada 1 146 zł wydatków drogowych. Konsultacje społeczne w tej sprawie odbędą się 21 października 2026 roku o godzinie 17:30 w sali nr 3 urzędu gminy przy ulicy Rynek 1, a ich celem jest dokonanie ustalenia priorytetów na kolejne 4 lata.
Claude Opus 5 réussi6.2 s
- Nombres : tous les 18 conservés à l’identique.
- Fautes : toutes les 3 corrigées.
- Format : texte seul, longueur 98% de l’original.
W 2025 roku gmina Lipowo wydała na remonty dróg 14,3 mln zł, czyli o 2,1 mln zł więcej niż rok wcześniej. Najdroższa okazała się przebudowa ulicy Długiej, która kosztowała 3 850 000 zł za odcinek 1,8 km. Obecnie radni zaplanowali na 2026 rok kwotę 16 mln zł, jednak skarbnik ostrzega, że przy inflacji na poziomie 4,7% realna wartość tej kwoty będzie niższa. W gminie mieszka 12 480 osób, a zarejestrowanych samochodów jest 7 912, więc na jednego mieszkańca przypada 1 146 zł wydatków drogowych. Konsultacje społeczne w tej sprawie odbędą się 21 października 2026 roku o godzinie 17:30 w sali nr 3 urzędu gminy przy ulicy Rynek 1, a ich celem jest ustalenie priorytetów na kolejne 4 lata.
GPT-6 Astra réussi4.9 s
- Nombres : tous les 18 conservés à l’identique.
- Fautes : toutes les 3 corrigées.
- Format : texte seul, longueur 98% de l’original.
W 2025 roku gmina Lipowo wydała na remonty dróg 14,3 mln zł, czyli o 2,1 mln zł więcej niż rok wcześniej. Najdroższa okazała się przebudowa ulicy Długiej, która kosztowała 3 850 000 zł za odcinek 1,8 km. Radni zaplanowali na 2026 rok wydatki w wysokości 16 mln zł, jednak skarbnik ostrzega, że przy inflacji na poziomie 4,7% realna wartość tej kwoty będzie niższa. W gminie mieszka 12 480 osób, a zarejestrowanych samochodów jest 7 912, więc na jednego mieszkańca przypada 1 146 zł wydatków na drogi. Konsultacje społeczne w tej sprawie odbędą się 21 października 2026 roku o godzinie 17:30 w sali nr 3 urzędu gminy przy ulicy Rynek 1. Ich celem jest ustalenie priorytetów na kolejne 4 lata.
Gemini 3.1 Pro réussi19 s
- Nombres : tous les 18 conservés à l’identique.
- Fautes : toutes les 3 corrigées.
- Format : texte seul, longueur 97% de l’original.
W 2025 roku gmina Lipowo wydała na remonty dróg 14,3 mln zł, czyli o 2,1 mln zł więcej niż rok wcześniej. Najdroższa okazała się przebudowa ulicy Długiej, która kosztowała 3 850 000 zł za odcinek 1,8 km. Obecnie radni zaplanowali na 2026 rok kwotę 16 mln zł, jednak skarbnik ostrzega, że przy inflacji na poziomie 4,7% realna wartość tej kwoty będzie niższa. W gminie mieszka 12 480 osób, a zarejestrowanych samochodów jest 7 912, więc na jednego mieszkańca przypada 1 146 zł wydatków drogowych. Konsultacje społeczne w tej sprawie odbędą się 21 października 2026 roku o godzinie 17:30 w sali nr 3 urzędu gminy przy ulicy Rynek 1, a ich celem jest ustalenie priorytetów na kolejne 4 lata.
Kimi K3 réussi59.3 s
- Nombres : tous les 18 conservés à l’identique.
- Fautes : toutes les 3 corrigées.
- Format : texte seul, longueur 94% de l’original.
W 2025 roku gmina Lipowo wydała na remonty dróg 14,3 mln zł, czyli o 2,1 mln zł więcej niż rok wcześniej. Najdroższa okazała się przebudowa ulicy Długiej, która kosztowała 3 850 000 zł za odcinek 1,8 km. Na 2026 rok radni zaplanowali 16 mln zł, jednak skarbnik ostrzega, że przy inflacji 4,7% realna wartość tej kwoty będzie niższa. W gminie mieszka 12 480 osób, a zarejestrowanych samochodów jest 7 912, więc na jednego mieszkańca przypada 1 146 zł wydatków drogowych. Konsultacje społeczne w tej sprawie odbędą się 21 października 2026 roku o godzinie 17:30 w sali nr 3 urzędu gminy przy ulicy Rynek 1, a ich celem jest ustalenie priorytetów na kolejne 4 lata.
DeepSeek V4 Pro réussi40.2 s
- Nombres : tous les 18 conservés à l’identique.
- Fautes : toutes les 3 corrigées.
- Format : texte seul, longueur 96% de l’original.
W 2025 roku gmina Lipowo wydała na remonty dróg 14,3 mln zł, czyli o 2,1 mln zł więcej niż rok wcześniej. Najdroższa okazała się przebudowa ulicy Długiej, która kosztowała 3 850 000 zł za odcinek 1,8 km. Obecnie radni zaplanowali na 2026 rok kwotę 16 mln zł, jednak skarbnik ostrzega, że przy inflacji 4,7% realna wartość tej kwoty będzie niższa. W gminie mieszka 12 480 osób, a zarejestrowanych samochodów jest 7 912, więc na jednego mieszkańca przypada 1 146 zł wydatków drogowych. Konsultacje społeczne w tej sprawie odbędą się 21 października 2026 roku o godzinie 17:30 w sali nr 3 urzędu gminy przy ulicy Rynek 1, a ich celem jest ustalenie priorytetów na kolejne 4 lata.
Grok 4.6 réussi27.9 s
- Nombres : tous les 18 conservés à l’identique.
- Fautes : toutes les 3 corrigées.
- Format : texte seul, longueur 97% de l’original.
W 2025 roku gmina Lipowo wydała na remonty dróg 14,3 mln zł, czyli o 2,1 mln zł więcej niż rok wcześniej. Najdroższa okazała się przebudowa ulicy Długiej, która kosztowała 3 850 000 zł za odcinek 1,8 km. Obecnie radni zaplanowali na 2026 rok kwotę 16 mln zł, jednak skarbnik ostrzega, że przy inflacji na poziomie 4,7% realna wartość tej kwoty będzie niższa. W gminie mieszka 12 480 osób, a zarejestrowanych samochodów jest 7 912, więc na jednego mieszkańca przypada 1 146 zł wydatków drogowych. Konsultacje społeczne w tej sprawie odbędą się 21 października 2026 roku o godzinie 17:30 w sali nr 3 urzędu gminy przy ulicy Rynek 1, a ich celem jest ustalenie priorytetów na kolejne 4 lata.
Qwen 3.8 Max réussi105.8 s
- Nombres : tous les 18 conservés à l’identique.
- Fautes : toutes les 3 corrigées.
- Format : texte seul, longueur 92% de l’original.
W 2025 roku gmina Lipowo wydała na remonty dróg 14,3 mln zł, czyli o 2,1 mln zł więcej niż rok wcześniej. Najdroższa okazała się przebudowa ulicy Długiej, która kosztowała 3 850 000 zł za odcinek 1,8 km. Radni zaplanowali na 2026 rok 16 mln zł, jednak skarbnik ostrzega, że przy inflacji 4,7% realna wartość tej kwoty będzie niższa. W gminie mieszka 12 480 osób, a zarejestrowanych samochodów jest 7 912, więc na jednego mieszkańca przypada 1 146 zł wydatków drogowych. Konsultacje społeczne w tej sprawie odbędą się 21 października 2026 roku o godzinie 17:30 w sali nr 3 urzędu gminy przy ulicy Rynek 1, aby ustalić priorytety na kolejne 4 lata.
Tableau PDF vers JSON
Le modèle reçoit la couche texte d’un tarif PDF : deux lignes avec le nom reporté à la ligne suivante, une ligne sans données (tirets), un service exonéré de TVA avec astérisque et note de bas de page. Il doit retourner 8 lignes en JSON. L’évaluateur compare chaque cellule avec la valeur attendue ; une ligne ne compte que dans son intégralité.
Prompt complet (identique pour chaque modèle)
Ci-dessous le texte extrait d'un fichier PDF (couche texte, colonnes séparées par des espaces, certains noms reportés à la ligne suivante). Retourne UNIQUEMENT du JSON : un tableau de 8 objets avec les clés : - "lp" (nombre entier), - "usluga" (nom complet du service, y compris la partie reportée à la ligne suivante, sans astérisque), - "netto" (nombre ou null si absent), - "vat" (taux en nombre, par ex. 23 ; texte "zw." pour service exonéré ; null si absent), - "brutto" (nombre ou null si absent). Sans commentaires, sans markdown, sans texte en dehors du JSON. TEXTE DU PDF : CENNIK USŁUG SERWISOWYCH obowiązuje od 1.03.2026 Lp. Usługa Cena netto VAT Cena brutto 1 Diagnostyka komputera 120,00 23% 147,60 2 Wymiana dysku SSD (bez części) 180,00 23% 221,40 3 Instalacja systemu operacyjnego 150,00 23% 184,50 4 Czyszczenie laptopa z wymianą pasty termoprzewodzącej 210,00 23% 258,30 5 Odzyskiwanie danych (wycena indywidualna) - - - 6 Konfiguracja routera 90,00 23% 110,70 7 Szkolenie z obsługi (1 godz.)* 100,00 zw. 100,00 8 Dojazd do klienta (za km) 2,50 23% 3,08 * usługa zwolniona z VAT na podstawie art. 43 ust. 1 pkt 29 ustawy
Claude Opus 5 8/8 lignes5 s
- Toutes les 8 lignes conformes au tableau, y compris les noms coupés dans le PDF et la ligne sans données.
[{"lp":1,"usluga":"Diagnostyka komputera","netto":120.00,"vat":23,"brutto":147.60},{"lp":2,"usluga":"Wymiana dysku SSD (bez części)","netto":180.00,"vat":23,"brutto":221.40},{"lp":3,"usluga":"Instalacja systemu operacyjnego","netto":150.00,"vat":23,"brutto":184.50},{"lp":4,"usluga":"Czyszczenie laptopa z wymianą pasty termoprzewodzącej","netto":210.00,"vat":23,"brutto":258.30},{"lp":5,"usluga":"Odzyskiwanie danych (wycena indywidualna)","netto":null,"vat":null,"brutto":null},{"lp":6,"usluga":"Konfiguracja routera","netto":90.00,"vat":23,"brutto":110.70},{"lp":7,"usluga":"Szkolenie z obsługi (1 godz.)","netto":100.00,"vat":"zw.","brutto":100.00},{"lp":8,"usluga":"Dojazd do klienta (za km)","netto":2.50,"vat":23,"brutto":3.08}]
GPT-6 Astra 8/8 lignes7.4 s
- Toutes les 8 lignes conformes au tableau, y compris les noms coupés dans le PDF et la ligne sans données.
[
{
"lp": 1,
"usluga": "Diagnostyka komputera",
"netto": 120.00,
"vat": 23,
"brutto": 147.60
},
{
"lp": 2,
"usluga": "Wymiana dysku SSD (bez części)",
"netto": 180.00,
"vat": 23,
"brutto": 221.40
},
{
"lp": 3,
"usluga": "Instalacja systemu operacyjnego",
"netto": 150.00,
"vat": 23,
"brutto": 184.50
},
{
"lp": 4,
"usluga": "Czyszczenie laptopa z wymianą pasty termoprzewodzącej",
"netto": 210.00,
"vat": 23,
"brutto": 258.30
},
{
"lp": 5,
"usluga": "Odzyskiwanie danych (wycena indywidualna)",
"netto": null,
"vat": null,
"brutto": null
},
{
"lp": 6,
"usluga": "Konfiguracja routera",
"netto": 90.00,
"vat": 23,
"brutto": 110.70
},
{
"lp": 7,
"usluga": "Szkolenie z obsługi (1 godz.)",
"netto": 100.00,
"vat": "zw.",
"brutto": 100.00
},
{
"lp": 8,
"usluga": "Dojazd do klienta (za km)",
"netto": 2.50,
"vat": 23,
"brutto": 3.08
}
]
Gemini 3.1 Pro 8/8 lignes16.8 s
- Toutes les 8 lignes conformes au tableau, y compris les noms coupés dans le PDF et la ligne sans données.
[
{
"lp": 1,
"usluga": "Diagnostyka komputera",
"netto": 120.00,
"vat": 23,
"brutto": 147.60
},
{
"lp": 2,
"usluga": "Wymiana dysku SSD (bez części)",
"netto": 180.00,
"vat": 23,
"brutto": 221.40
},
{
"lp": 3,
"usluga": "Instalacja systemu operacyjnego",
"netto": 150.00,
"vat": 23,
"brutto": 184.50
},
{
"lp": 4,
"usluga": "Czyszczenie laptopa z wymianą pasty termoprzewodzącej",
"netto": 210.00,
"vat": 23,
"brutto": 258.30
},
{
"lp": 5,
"usluga": "Odzyskiwanie danych (wycena indywidualna)",
"netto": null,
"vat": null,
"brutto": null
},
{
"lp": 6,
"usluga": "Konfiguracja routera",
"netto": 90.00,
"vat": 23,
"brutto": 110.70
},
{
"lp": 7,
"usluga": "Szkolenie z obsługi (1 godz.)",
"netto": 100.00,
"vat": "zw.",
"brutto": 100.00
},
{
"lp": 8,
"usluga": "Dojazd do klienta (za km)",
"netto": 2.50,
"vat": 23,
"brutto": 3.08
}
]
Kimi K3 8/8 lignes8.6 s
- Toutes les 8 lignes conformes au tableau, y compris les noms coupés dans le PDF et la ligne sans données.
[{"lp":1,"usluga":"Diagnostyka komputera","netto":120.00,"vat":23,"brutto":147.60},{"lp":2,"usluga":"Wymiana dysku SSD (bez części)","netto":180.00,"vat":23,"brutto":221.40},{"lp":3,"usluga":"Instalacja systemu operacyjnego","netto":150.00,"vat":23,"brutto":184.50},{"lp":4,"usluga":"Czyszczenie laptopa z wymianą pasty termoprzewodzącej","netto":210.00,"vat":23,"brutto":258.30},{"lp":5,"usluga":"Odzyskiwanie danych (wycena indywidualna)","netto":null,"vat":null,"brutto":null},{"lp":6,"usluga":"Konfiguracja routera","netto":90.00,"vat":23,"brutto":110.70},{"lp":7,"usluga":"Szkolenie z obsługi (1 godz.)","netto":100.00,"vat":"zw.","brutto":100.00},{"lp":8,"usluga":"Dojazd do klienta (za km)","netto":2.50,"vat":23,"brutto":3.08}]
DeepSeek V4 Pro 8/8 lignes24.5 s
- Toutes les 8 lignes conformes au tableau, y compris les noms coupés dans le PDF et la ligne sans données.
[
{
"lp": 1,
"usluga": "Diagnostyka komputera",
"netto": 120,
"vat": 23,
"brutto": 147.6
},
{
"lp": 2,
"usluga": "Wymiana dysku SSD (bez części)",
"netto": 180,
"vat": 23,
"brutto": 221.4
},
{
"lp": 3,
"usluga": "Instalacja systemu operacyjnego",
"netto": 150,
"vat": 23,
"brutto": 184.5
},
{
"lp": 4,
"usluga": "Czyszczenie laptopa z wymianą pasty termoprzewodzącej",
"netto": 210,
"vat": 23,
"brutto": 258.3
},
{
"lp": 5,
"usluga": "Odzyskiwanie danych (wycena indywidualna)",
"netto": null,
"vat": null,
"brutto": null
},
{
"lp": 6,
"usluga": "Konfiguracja routera",
"netto": 90,
"vat": 23,
"brutto": 110.7
},
{
"lp": 7,
"usluga": "Szkolenie z obsługi (1 godz.)",
"netto": 100,
"vat": "zw.",
"brutto": 100
},
{
"lp": 8,
"usluga": "Dojazd do klienta (za km)",
"netto": 2.5,
"vat": 23,
"brutto": 3.08
}
]
Grok 4.6 8/8 lignes32 s
- Toutes les 8 lignes conformes au tableau, y compris les noms coupés dans le PDF et la ligne sans données.
[{"lp":1,"usluga":"Diagnostyka komputera","netto":120,"vat":23,"brutto":147.6},{"lp":2,"usluga":"Wymiana dysku SSD (bez części)","netto":180,"vat":23,"brutto":221.4},{"lp":3,"usluga":"Instalacja systemu operacyjnego","netto":150,"vat":23,"brutto":184.5},{"lp":4,"usluga":"Czyszczenie laptopa z wymianą pasty termoprzewodzącej","netto":210,"vat":23,"brutto":258.3},{"lp":5,"usluga":"Odzyskiwanie danych (wycena indywidualna)","netto":null,"vat":null,"brutto":null},{"lp":6,"usluga":"Konfiguracja routera","netto":90,"vat":23,"brutto":110.7},{"lp":7,"usluga":"Szkolenie z obsługi (1 godz.)","netto":100,"vat":"zw.","brutto":100},{"lp":8,"usluga":"Dojazd do klienta (za km)","netto":2.5,"vat":23,"brutto":3.08}]
Qwen 3.8 Max 8/8 lignes40.9 s
- Toutes les 8 lignes conformes au tableau, y compris les noms coupés dans le PDF et la ligne sans données.
[
{
"lp": 1,
"usluga": "Diagnostyka komputera",
"netto": 120.00,
"vat": 23,
"brutto": 147.60
},
{
"lp": 2,
"usluga": "Wymiana dysku SSD (bez części)",
"netto": 180.00,
"vat": 23,
"brutto": 221.40
},
{
"lp": 3,
"usluga": "Instalacja systemu operacyjnego",
"netto": 150.00,
"vat": 23,
"brutto": 184.50
},
{
"lp": 4,
"usluga": "Czyszczenie laptopa z wymianą pasty termoprzewodzącej",
"netto": 210.00,
"vat": 23,
"brutto": 258.30
},
{
"lp": 5,
"usluga": "Odzyskiwanie danych (wycena indywidualna)",
"netto": null,
"vat": null,
"brutto": null
},
{
"lp": 6,
"usluga": "Konfiguracja routera",
"netto": 90.00,
"vat": 23,
"brutto": 110.70
},
{
"lp": 7,
"usluga": "Szkolenie z obsługi (1 godz.)",
"netto": 100.00,
"vat": "zw.",
"brutto": 100.00
},
{
"lp": 8,
"usluga": "Dojazd do klienta (za km)",
"netto": 2.50,
"vat": 23,
"brutto": 3.08
}
]
Code : validateur PESEL avec tests
Le modèle écrit une fonction Python validant un PESEL (somme de contrôle, codage du siècle dans le mois, validité de la date, sexe). Le code est exécuté dans un bac à sable externe (Compiler Explorer, Python 3.12) sur 10 vecteurs : 5 numéros valides de différents siècles et 5 pièges (mauvaise somme, 31 février, 10 caractères, lettre, chaîne vide). Le résultat est le nombre de vecteurs réussis. Nous avons testé en polonais.
Prompt complet (identique pour chaque modèle)
Écris en Python 3 une fonction waliduj_pesel(pesel: str) -> dict.
Exigences :
- l'entrée est une chaîne quelconque ; un PESEL valide a exactement 11 chiffres,
- somme de contrôle : poids 1,3,7,9,1,3,7,9,1,3 pour les 10 premiers chiffres ; chiffre de contrôle = (10 - somme mod 10) mod 10 et doit être égal au 11e chiffre,
- siècle codé dans le mois : 1800-1899 mois + 80, 1900-1999 sans changement, 2000-2099 mois + 20, 2100-2199 mois + 40, 2200-2299 mois + 60,
- la date doit être une date calendaire valide (par ex. 31 février est invalide),
- sexe du 10e chiffre : pair = 'K', impair = 'M'.
Dictionnaire retourné : {'poprawny': bool, 'data_urodzenia': 'AAAA-MM-JJ' ou None, 'plec': 'K'/'M' ou None}. Pour un numéro invalide : {'poprawny': False, 'data_urodzenia': None, 'plec': None}. La fonction ne doit lever aucune exception pour aucune entrée.
Retourne UNIQUEMENT le code Python (sans markdown, sans discussion). N'ajoute pas de code exécutant la fonction.
10 vecteurs de test (le modèle ne les voit pas)
85031212305→ {« poprawny »:true, »data_urodzenia »: »1985-03-12″, »plec »: »K »}04313004573→ {« poprawny »:true, »data_urodzenia »: »2004-11-30″, »plec »: »M »}71123199937→ {« poprawny »:true, »data_urodzenia »: »1971-12-31″, »plec »: »M »}00222900702→ {« poprawny »:true, »data_urodzenia »: »2000-02-29″, »plec »: »K »}99870432158→ {« poprawny »:true, »data_urodzenia »: »1899-07-04″, »plec »: »M »}85031212306→ {« poprawny »:false, »data_urodzenia »:null, »plec »:null}00223100705→ {« poprawny »:false, »data_urodzenia »:null, »plec »:null}8503121230→ {« poprawny »:false, »data_urodzenia »:null, »plec »:null}85031212a05→ {« poprawny »:false, »data_urodzenia »:null, »plec »:null}(vide)→ {« poprawny »:false, »data_urodzenia »:null, »plec »:null}
Claude Opus 5 10/10 vecteurs8 s
- Tous les 10 vecteurs réussis, y compris 31 février avec somme de contrôle correcte et année 1899.
```python
import datetime
def waliduj_pesel(pesel: str) -> dict:
niepoprawny = {'poprawny': False, 'data_urodzenia': None, 'plec': None}
try:
if not isinstance(pesel, str):
return niepoprawny
if len(pesel) != 11:
return niepoprawny
if not all('0' <= znak <= '9' for znak in pesel):
return niepoprawny
cyfry = [ord(znak) - 48 for znak in pesel]
wagi = (1, 3, 7, 9, 1, 3, 7, 9, 1, 3)
suma = sum(w * c for w, c in zip(wagi, cyfry[:10]))
if (10 - suma % 10) % 10 != cyfry[10]:
return niepoprawny
rr = cyfry[0] * 10 + cyfry[1]
mm = cyfry[2] * 10 + cyfry[3]
dd = cyfry[4] * 10 + cyfry[5]
if 1 <= mm <= 12:
wiek = 1900
miesiac = mm
elif 21 <= mm <= 32:
wiek = 2000
miesiac = mm - 20
elif 41 <= mm <= 52:
wiek = 2100
miesiac = mm - 40
elif 61 <= mm <= 72:
wiek = 2200
miesiac = mm - 60
elif 81 <= mm <= 92:
wiek = 1800
miesiac = mm - 80
else:
return niepoprawny
rok = wiek + rr
try:
data = datetime.date(rok, miesiac, dd)
except ValueError:
return niepoprawny
plec = 'K' if cyfry[9] % 2 == 0 else 'M'
return {
'poprawny': True,
'data_urodzenia': '{:04d}-{:02d}-{:02d}'.format(data.year, data.month, data.day),
'plec': plec,
}
except Exception:
return {'poprawny': False, 'data_urodzenia': None, 'plec': None}
GPT-6 Astra 10/10 vecteurs17.4 s
- Tous les 10 vecteurs réussis, y compris 31 février avec somme de contrôle correcte et année 1899.
from datetime import date
def waliduj_pesel(pesel: str) -> dict:
niepoprawny = {
"poprawny": False,
"data_urodzenia": None,
"plec": None,
}
try:
if not isinstance(pesel, str) or len(pesel) != 11:
return niepoprawny
if any(znak not in "0123456789" for znak in pesel):
return niepoprawny
cyfry = [int(znak) for znak in pesel]
wagi = (1, 3, 7, 9, 1, 3, 7, 9, 1, 3)
suma = sum(cyfra * waga for cyfra, waga in zip(cyfry[:10], wagi))
if (10 - suma % 10) % 10 != cyfry[10]:
return niepoprawny
rok = cyfry[0] * 10 + cyfry[1]
miesiac = cyfry[2] * 10 + cyfry[3]
dzien = cyfry[4] * 10 + cyfry[5]
if 1 <= miesiac <= 12:
rok += 1900
elif 21 <= miesiac <= 32:
rok += 2000
miesiac -= 20
elif 41 <= miesiac <= 52:
rok += 2100
miesiac -= 40
elif 61 <= miesiac <= 72:
rok += 2200
miesiac -= 60
elif 81 <= miesiac <= 92:
rok += 1800
miesiac -= 80
else:
return niepoprawny
data_urodzenia = date(rok, miesiac, dzien)
return {
"poprawny": True,
"data_urodzenia": data_urodzenia.isoformat(),
"plec": "K" if cyfry[9] % 2 == 0 else "M",
}
except Exception:
return niepoprawny
Gemini 3.1 Pro 10/10 vecteurs17 s
- Tous les 10 vecteurs réussis, y compris 31 février avec somme de contrôle correcte et année 1899.
import datetime
def waliduj_pesel(pesel: str) -> dict:
wynik_bledny = {'poprawny': False, 'data_urodzenia': None, 'plec': None}
if not isinstance(pesel, str) or len(pesel) != 11 or not pesel.isdigit():
return wynik_bledny
wagi = [1, 3, 7, 9, 1, 3, 7, 9, 1, 3]
suma = sum(int(pesel[i]) * wagi[i] for i in range(10))
cyfra_kontrolna = (10 - (suma % 10)) % 10
if cyfra_kontrolna != int(pesel[10]):
return wynik_bledny
rok_dwie_cyfry = int(pesel[0:2])
miesiac_kod = int(pesel[2:4])
dzien = int(pesel[4:6])
if 81 <= miesiac_kod <= 92:
rok = 1800 + rok_dwie_cyfry
miesiac = miesiac_kod - 80
elif 1 <= miesiac_kod <= 12:
rok = 1900 + rok_dwie_cyfry
miesiac = miesiac_kod
elif 21 <= miesiac_kod <= 32:
rok = 2000 + rok_dwie_cyfry
miesiac = miesiac_kod - 20
elif 41 <= miesiac_kod <= 52:
rok = 2100 + rok_dwie_cyfry
miesiac = miesiac_kod - 40
elif 61 <= miesiac_kod <= 72:
rok = 2200 + rok_dwie_cyfry
miesiac = miesiac_kod - 60
else:
return wynik_bledny
try:
datetime.date(rok, miesiac, dzien)
except ValueError:
return wynik_bledny
cyfra_plci = int(pesel[9])
plec = 'K' if cyfra_plci % 2 == 0 else 'M'
data_urodzenia = f"{rok:04d}-{miesiac:02d}-{dzien:02d}"
return {
'poprawny': True,
'data_urodzenia': data_urodzenia,
'plec': plec
}
Kimi K3 10/10 vecteurs155.1 s
- Tous les 10 vecteurs réussis, y compris 31 février avec somme de contrôle correcte et année 1899.
import datetime
def waliduj_pesel(pesel: str) -> dict:
niepoprawny = {'poprawny': False, 'data_urodzenia': None, 'plec': None}
try:
if not isinstance(pesel, str):
return niepoprawny
if len(pesel) != 11 or not pesel.isascii() or not pesel.isdigit():
return niepoprawny
cyfry = [int(c) for c in pesel]
wagi = (1, 3, 7, 9, 1, 3, 7, 9, 1, 3)
suma = sum(wagi[i] * cyfry[i] for i in range(10))
if (10 - suma % 10) % 10 != cyfry[10]:
return niepoprawny
rok = cyfry[0] * 10 + cyfry[1]
miesiac = cyfry[2] * 10 + cyfry[3]
dzien = cyfry[4] * 10 + cyfry[5]
if 1 <= miesiac <= 12:
stulecie = 1900
elif 21 <= miesiac <= 32:
stulecie = 2000
miesiac -= 20
elif 41 <= miesiac <= 52:
stulecie = 2100
miesiac -= 40
elif 61 <= miesiac <= 72:
stulecie = 2200
miesiac -= 60
elif 81 <= miesiac <= 92:
stulecie = 1800
miesiac -= 80
else:
return niepoprawny
rok += stulecie
try:
datetime.date(rok, miesiac, dzien)
except ValueError:
return niepoprawny
plec = 'K' if cyfry[9] % 2 == 0 else 'M'
return {
'poprawny': True,
'data_urodzenia': f'{rok:04d}-{miesiac:02d}-{dzien:02d}',
'plec': plec,
}
except Exception:
return {'poprawny': False, 'data_urodzenia': None, 'plec': None}
DeepSeek V4 Pro pas de réponse170 s
- dépassement de la limite de temps 170 s
Erreur : dépassement de la limite de temps 170 s
Grok 4.6 10/10 vecteurs45.8 s
- Tous les 10 vecteurs réussis, y compris 31 février avec somme de contrôle correcte et année 1899.
from datetime import datetime
def waliduj_pesel(pesel: str) -> dict:
invalid = {'poprawny': False, 'data_urodzenia': None, 'plec': None}
try:
if not isinstance(pesel, str) or len(pesel) != 11 or not pesel.isdigit():
return invalid
digits = [int(c) for c in pesel]
weights = (1, 3, 7, 9, 1, 3, 7, 9, 1, 3)
s = sum(d * w for d, w in zip(digits, weights))
control = (10 - s % 10) % 10
if control != digits[10]:
return invalid
yy = 10 * digits[0] + digits[1]
mm = 10 * digits[2] + digits[3]
dd = 10 * digits[4] + digits[5]
if 1 <= mm <= 12:
year = 1900 + yy
month = mm
elif 21 <= mm <= 32:
year = 2000 + yy
month = mm - 20
elif 41 <= mm <= 52:
year = 2100 + yy
month = mm - 40
elif 61 <= mm <= 72:
year = 2200 + yy
month = mm - 60
elif 81 <= mm <= 92:
year = 1800 + yy
month = mm - 80
else:
return invalid
datetime(year, month, dd)
plec = 'K' if digits[9] % 2 == 0 else 'M'
return {
'poprawny': True,
'data_urodzenia': f'{year:04d}-{month:02d}-{dd:02d}',
'plec': plec
}
except Exception:
return invalid
Qwen 3.8 Max pas de réponse170 s
- dépassement de la limite de temps 170 s
Erreur : dépassement de la limite de temps 170 s
Ce qui n'a pas fonctionné dans cette exécution
- DeepSeek V4 Pro, Code : validateur PESEL avec tests : dépassement de la limite de temps 170 s.
- Qwen 3.8 Max, Code : validateur PESEL avec tests : dépassement de la limite de temps 170 s.
Méthodologie et réserves
- Un seul appel par paire modèle-tâche, température 0, sans prompt système, sans outils. Nous ne répétons pas l'appel quand la réponse est mauvaise ; nous répétons uniquement quand l'API n'a pas répondu (429, 5xx, connexion interrompue), et nous le signalons dans l'enregistrement.
- L'évaluation est déterministe : du code PHP compare les nombres et les cellules, et le code du modèle est exécuté par un bac à sable externe Compiler Explorer (godbolt.org, Python 3.12). Aucun modèle n'évalue un autre modèle.
- Limite de temps de réponse : 170 s. Le dépassement compte comme absence de réponse et est publié ainsi, car du point de vue de l'utilisateur c'est le même résultat. La limite de tokens de réponse est de 8000 y compris le raisonnement caché ; un modèle qui l'épuise en réflexion et ne retourne pas de contenu reçoit « réponse vide ».
- Limites : ce sont trois tâches courtes en polonais, pas une image complète du modèle. Les tâches sont publiques, elles peuvent donc avec le temps se retrouver dans les données d'entraînement ; c'est pourquoi le protocole a une version, et un changement de tâches signifie une nouvelle version et une comparaison séparée.
- Pour citer : « promptif.fr, test de modèles d'IA, exécution du 16.09.2026 » avec un lien vers cet article.
More on this from PROMPTIF
état de l'ia·Hallucination de chatbot : avions en vol, opération annuléeUne hallucination d'IA a failli déclencher une frappe militaire américaine. Nous avons calculé combien d'erreurs passent une seule étape de vérification.

