Проект
Испытайте пустой ввод, неровные строки и разорванные имена, возвращая исключающие границы только для полностью заполненных прямоугольников.
Arevia — среда программирования с ИИ в Windows для проверки правил раскладки рядом с файлами проекта. Откройте проверку областей сетки, обсудите условие прямоугольности с совместимой моделью и изучите изменения до применения полученного CSS.
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 resultИспытайте пустой ввод, неровные строки и разорванные имена, возвращая исключающие границы только для полностью заполненных прямоугольников.
Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.
Базовый URL, учётные данные и доступный сервер.
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 — рабочая среда программирования с ИИ для Windows, в которой можно разрабатывать код, связывающий ввод макета с видимым поведением. Откройте нужные файлы проекта и опишите, что должно быть разрешено человеку, редактирующему макет. Попросите модель изучить валидатор и вызывающий его код, прежде чем менять любую из сторон этого взаимодействия.
Вы выбираете модель-помощника через поддерживаемую конечную точку, совместимую с OpenAI, или конечную точку Anthropic и при необходимости предоставляете учётные данные. Модель ИИ без цензуры можно выбрать, если она доступна в вашей конечной точке. Её ограничения, поддержка инструментов и объём контекста остаются свойствами этой конфигурации, а не гарантиями, связанными с задачей макета.
Один из примеров запроса — проверка прямоугольности областей CSS-сетки. Добавьте в обсуждение корректную сетку, несвязную именованную область и строку неравной длины. Спросите, как текущая реализация принимает или отклоняет каждый вариант, затем проверьте предлагаемое изменение: оно должно сохранять корректные макеты и объяснять пользователю ошибку в некорректном.
Рассматривайте результат валидатора и ответ интерфейса вместе. Даже правильному отклонению нужно полезное сообщение, а принятый макет должен попасть в нужную ветвь отрисовки. Запустите тесты проекта, изучите изменённый код и попробуйте характерные макеты в собственном интерфейсе, прежде чем признать, что функция работает по спецификации.
Сначала проверьте, проходит ли переданная структура предусмотренную проверку. Если проходит, проследите путь принятого результата до отрисовки. Попросите модель изучить обе ветви на одном тестовом примере, а не менять CSS до определения этапа сбоя.
Только если это явное требование продукта. Исправление может изменить задуманный макет. Определите, должен ли интерфейс отклонять, объяснять или преобразовывать ввод, и проверяйте полученный код на соответствие выбранному поведению.
Включите корректный прямоугольник, именованную область с разрывом и строки разной ширины. Укажите ожидаемый результат для каждого случая. Добавьте минимальный пример, воспроизводящий вашу проблему, чтобы проверка оставалась связанной с заявленным поведением.
Назовите файлы и приёмочные сценарии до запроса работы. Проверяйте предлагаемые действия инструментов: локальный запуск модели требует отдельного сервера и не делает все инструменты локальными. Проверьте полученный интерфейс в среде, которой действительно пользуетесь.
Arevia · Обновлено 2026-10-25