Projet
Teste une entrée vide, des lignes inégales et des noms disjoints, en donnant des bornes exclusives seulement si chaque zone remplit son rectangle.
Valide des zones rectangulaires nommées par des identifiants ASCII et des cellules vides réduites à un point.
import re
def grid_areas(rows):
if type(rows) is not list or any(type(r) is not str for r in rows):
raise ValueError("grid.rows")
if not rows:
return {}
cells = [r.split() for r in rows]
width = len(cells[0])
if not width or any(len(r) != width for r in cells):
raise ValueError("grid.width")
groups = {}
for y, row in enumerate(cells):
for x, name in enumerate(row):
if name == ".":
continue
if not re.fullmatch(r"[A-Za-z_][A-Za-z0-9_-]*", name):
raise ValueError("grid.name")
groups.setdefault(name, []).append((y, x))
result = {}
for name, points in groups.items():
top, bottom = min(y for y,x in points), max(y for y,x in points)+1
left, right = min(x for y,x in points), max(x for y,x in points)+1
if len(points) != (bottom-top)*(right-left):
raise ValueError("grid.rectangle")
result[name] = (top, bottom, left, right)
return resultTeste une entrée vide, des lignes inégales et des noms disjoints, en donnant des bornes exclusives seulement si chaque zone remplit son rectangle.
Comparez le comportement observé au résultat attendu. Si une vérification échoue, cherchez la cause avant de poursuivre les modifications.
Configurez un endpoint compatible OpenAI ou Anthropic avec son URL de base et une clé API si nécessaire. Testez la connexion. Un serveur local doit fonctionner ; les outils distants peuvent transmettre des données séparément.
import re
def grid_areas(rows):
if type(rows) is not list or any(type(r) is not str for r in rows):
raise ValueError("grid.rows")
if not rows:
return {}
cells = [r.split() for r in rows]
width = len(cells[0])
if not width or any(len(r) != width for r in cells):
raise ValueError("grid.width")
groups = {}
for y, row in enumerate(cells):
for x, name in enumerate(row):
if name == ".":
continue
if not re.fullmatch(r"[A-Za-z_][A-Za-z0-9_-]*", name):
raise ValueError("grid.name")
groups.setdefault(name, []).append((y, x))
result = {}
for name, points in groups.items():
top, bottom = min(y for y,x in points), max(y for y,x in points)+1
left, right = min(x for y,x in points), max(x for y,x in points)+1
if len(points) != (bottom-top)*(right-left):
raise ValueError("grid.rectangle")
result[name] = (top, bottom, left, right)
return resultArevia est un espace de programmation avec IA pour Windows, conçu pour développer le code qui relie les données de mise en page au comportement visible. Ouvrez les fichiers concernés du projet et décrivez ce que la personne qui modifie la mise en page doit pouvoir exprimer. Demandez au modèle d’examiner le validateur et son appelant avant de modifier l’un ou l’autre côté de cette interaction.
Vous choisissez le modèle d’assistance via un point de terminaison compatible OpenAI ou Anthropic pris en charge et fournissez les identifiants nécessaires. Vous pouvez sélectionner un modèle d’IA sans censure si votre point de terminaison en propose un. Ses restrictions, ses outils pris en charge et sa capacité de contexte restent propres à cette configuration ; ce ne sont pas des garanties liées à la tâche de mise en page.
La vérification du caractère rectangulaire des zones d’une grille CSS constitue un exemple de demande. Fournissez une grille valide, une zone nommée disjointe et une ligne de largeur irrégulière. Demandez comment l’implémentation actuelle accepte ou rejette chacun de ces cas, puis examinez une modification proposée qui préserve les mises en page valides tout en expliquant à l’utilisateur pourquoi une autre est invalide.
Examinez ensemble le résultat du validateur et la réponse de l’interface. Un rejet correct exige aussi un message utile, et une mise en page acceptée doit parvenir au chemin de rendu prévu. Exécutez les tests du projet, inspectez le code modifié et essayez des mises en page représentatives dans votre propre interface avant de conclure que la fonctionnalité respecte les spécifications.
Vérifiez d’abord si la structure soumise satisfait la validation prévue. Si oui, suivez la sortie acceptée jusqu’au rendu. Demandez au modèle d’examiner les deux chemins avec les mêmes données de test, plutôt que de modifier le CSS avant d’avoir identifié l’étape défaillante.
Uniquement si le produit l’exige explicitement. Une réparation peut modifier la mise en page souhaitée. Définissez si l’interface doit rejeter, expliquer ou transformer les données, puis examinez le code obtenu au regard du comportement choisi.
Incluez un rectangle valide, une zone nommée présentant une lacune et des lignes de largeurs différentes. Précisez le résultat attendu pour chaque cas. Ajoutez le plus petit jeu de données reproduisant votre problème afin de garder la revue centrée sur le comportement signalé.
Nommez les fichiers et les cas d’acceptation avant de demander le travail. Examinez les actions d’outils proposées : l’inférence locale nécessite un serveur distinct et ne rend pas tous les outils locaux. Vérifiez l’interface obtenue dans l’environnement que vous utilisez réellement.
Arevia · Mis à jour 2026-10-25