Перевірте перед застосуванням
Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
Перевірте цілочисельні вузли пошуку з двома посиланнями на нащадків.
def is_strict_bst(root):
pending, seen, checks = [(root, None, None)], set(), []
while pending:
node, low, high = pending.pop()
if node is None:
continue
if type(node) is not list or len(node) != 3 or type(node[0]) is not int:
raise ValueError("tree.node")
if id(node) in seen or len(seen) == 1000:
raise ValueError("tree.structure")
seen.add(id(node))
value, left, right = node
checks.append((value, low, high))
pending.extend([(right, value, high), (left, low, value)])
return all((low is None or low < value) and
(high is None or value < high) for value, low, high in checks)Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані.
Випробуйте порожнє дерево й межі предків, повертайте хибність при повторних ключах і відхиляйте цикли, спільних нащадків, хибні вузли чи понад 1000 вузлів.
def is_strict_bst(root):
pending, seen, checks = [(root, None, None)], set(), []
while pending:
node, low, high = pending.pop()
if node is None:
continue
if type(node) is not list or len(node) != 3 or type(node[0]) is not int:
raise ValueError("tree.node")
if id(node) in seen or len(seen) == 1000:
raise ValueError("tree.structure")
seen.add(id(node))
value, left, right = node
checks.append((value, low, high))
pending.extend([(right, value, high), (left, low, value)])
return all((low is None or low < value) and
(high is None or value < high) for value, low, high in checks)TreeSentinel надає для супроводу структурованих даних робоче середовище проєкту у Windows та обговорення з ШІ, прив’язане до вихідних файлів. Почніть із демонстрації того, де застосунок отримує структуру та як використовує результат валідації. Попросіть модель перевірити всю цю межу перед пропозицією простішої перевірки чи іншого обходу.
Наприклад, завдання для bst_order.py може досліджувати дерево, безпосередні дочірні вузли якого виглядають упорядкованими, але глибше значення порушує межу предка. Додайте структуру з помилкою й очікуваний результат. Потім запитайте, як обробляються некоректні вузли та повторні посилання, щоб виправлення порядку не оминуло припущення про форму структури, яку обходять.
Перевірте отриману пропозицію для окремих результатів: коректного дерева, порушення порядку й некоректної структури. Запустіть відповідні перевірки проєкту й простежте, як кожен результат доходить до споживача. Залишайте будь-яку зміну політики повторюваних ключів явною. Те, що здається незначною правкою порівняння, може змінити дані, які приймає навколишній застосунок.
TreeSentinel підключається до підтримуваних сумісних з OpenAI або Anthropic кінцевих точок з обліковими даними за потреби. Можна вибрати аблітеровану модель ШІ, якщо кінцева точка її пропонує. Обмеження постачальника, межі контексту й доступні інструменти залишаються частиною цього налаштування; перевірка має спиратися на конкретні структури та спостережувані результати, а не на впевненість моделі.
Локальне порівняння може пройти, хоча нащадок порушує межу попереднього предка. Надайте невеликий вкладений приклад, що виявляє цю різницю, і зазначте очікуваний результат. Перевірте за ним запропонований обхід перед прийняттям спрощення логіки валідації.
Визначте це в контракті застосунку. Приклад вимагає строгого порядку, що виключає рівні ключі. Перевірте, чи споживач відрізняє некоректний вхід від правильно сформованої структури з порушенням порядку, і збережіть ці домовленості відповідей у запропонованій зміні.
Воно може означати, що вхід не має форми дерева, яку очікує функція, навіть коли окремі значення прийнятні. За потреби додайте приклад зі спільним посиланням або циклом. Перевіряйте завершення й відхилення, а не покладайтеся лише на звичайні вкладені приклади.
Лише після врахування структури та поведінки помилок, потрібних коду виклику. Перевірка плоского списку значень може приховати некоректні вузли або припущення обходу. Попросіть модель пояснити ці компроміси на фактичному коді перед зміною контракту валідації.
TreeSentinel · Оновлено 2026-10-25