Spaces:
Runtime error
Runtime error
Commit History
26 days ago
-
fix(eval): relecture vraiment a l'aveugle, budget au pire cas, mesures justes
Releves par la revue adversariale du lot personas. - Relecture a l'aveugle : les etiquettes etaient tirees au hasard, mais les reponses ecrites dans l'ordre des variantes ; citoyen toujours premier, temoin toujours dernier. Elles suivent desormais l'ordre des etiquettes. - Budget : il porte sur le pire cas (une reponse coupee demande une suite, une grille illisible est redemandee), soit deux appels par tache ; 96 par defaut pour les memes 48 taches. Un nombre negatif est refuse (`--comparaisons -1` retranchait un appel et en lancait trois). - Le reclassement par le modele est coupe : il ajoutait un appel par question hors budget, et en faisait dans --dry-run. - distinction ne compare que des profils de meme modele et memes consignes ; similarite ne tient plus « a b » et « c d » pour identiques ; les suffixes (quater, septies) sont ceux du chat ; les renvois vers un avocat reconnaissent « vous adresser a un avocat », « l'avocat de votre choix », « an attorney ». …84f70cd -
feat(eval): comparer_mistral mesure les profils, avec temoin de bruit et budget borne
- --personas : chaque question posee sous chaque profil, avec le MEME contexte ; alias acceptes, profil sans prompt refuse (sinon le repli de get_system_prompt ferait mesurer un autre profil). - --temoin : le premier profil rejoue, plancher de bruit a 0,7. - --budget : au-dela, rien n'est lance, avant meme la cle d'API. - --questions-libres avec --dry-run : la recherche du chat, sans appel au modele, montre si une suggestion a une reponse dans le corpus. - Mesures : forme_relue (citations que le chat sait relire en sources), traits (listes, renvois, definitions), similarite et distinction entre profils. La regle de decision des nouveaux prompts est ecrite dans la docstring, avant la mesure. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>df97adf
30 days ago
-
feat(eval): comparaison ministral-14b / 8b, et jeu d'evaluation par le modele du chat
scripts/eval/comparer_mistral.py mesure les deux modeles sur 20 questions du jeu d'evaluation relu et 4 comparaisons de regimes, au plus 48 appels : meme contexte pour les deux (la recherche est faite une fois), aucun appel a Groq, modele de secours coupe. Mesures : premier morceau, duree, jetons, fin, articles cites presents dans les extraits, JSON lisible et lignes remplies. Les reponses sont ecrites anonymisees (X/Y tires au sort) pour une relecture a l'aveugle des ajouts non sources. La regle de decision est ecrite avant la mesure : on garde le 14b, sauf si le 8b egale la justesse des citations a 2 points pres sans ajouter plus de contenu non source. generate_eval_set.py passe par get_llm_service() au lieu de Gemini, avec un systeme neutre : sans lui, l'instruction du chat exigeait « Sources: » au milieu d'un JSON. MistralService.generate_stream accepte un rappel `usage` (jetons du flux, modele qui a repondu), pour les mesures. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.…f565440
-
fix(qualite): ruff devient une vraie barriere, et trouve un schema mort et casse
Ruff tournait sans jeu de regles declare : 1332 signalements, dont 98 faux positifs sur le motif `Depends()` de FastAPI et 615 modernisations de style. Un controle que personne ne peut passer n'est pas un controle. Le jeu retenu ne garde que ce qui signale un defaut reel (F, E4, E7, E9, I, RUF100), avec des exceptions nommees la ou l'ordre des imports EST la protection : env.py doit poser sys.path avant d'importer les modeles, conftest doit surcharger DATABASE_URL avant d'importer l'application. Ce que le controle a alors trouve : - UN SCHEMA MORT ET CASSE. `LawDetailResponse` existait deja, exposant `List[ArticleResponse]`. Il n'etait branche sur aucune route, et il etait doublement inutilisable : ArticleResponse porte le CONTENU integral de chaque article — pour le Code Minier, 166 Ko servis deux fois — et son `number` etait plafonne a 20 caracteres alors que la colonne en fait 64 depuis qu'elle accueille « QUATRE-VINGT-DIX-SEPTIEME ». Le plafond du schema est corrige, et…7435134
-
test(eval): harnais de mesure de la recuperation
Sans mesure, le choix de la dimension et les poids de fusion se decident sur les chiffres MTEB d'un fournisseur et sur une constante tiree d'un papier TREC. Ce harnais permet de trancher sur CE corpus. scripts/eval/metrics.py — recall@k, MRR et intervalle de confiance bootstrap. Fonctions pures, definitions ecrites noir sur blanc dans le module : avec un seul article pertinent par question, recall@k est un taux de succes, et MRR est la metrique principale parce que le RAG n'envoie que 8 articles au modele — ce qui compte est que le bon soit HAUT, pas seulement present. Le module dit aussi qu'avec 60 questions l'erreur type est d'environ 6 points, et le rapport affiche l'intervalle a cote de chaque nombre : un ecart de 2 points n'est pas un resultat. scripts/eval/generate_eval_set.py — echantillonnage stratifie (60 % normatif, 20 % gros textes, 20 % aleatoire, formules d'execution exclues), generation de deux questions par article, et surtout les garde-fous qui ouvrent la boucle ferme…4f32045