적용하기 전에 검토하세요
실제 동작을 예상 결과와 비교하세요. 검사가 실패하면 다음 변경을 하기 전에 원인을 조사하세요.
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)실제 동작을 예상 결과와 비교하세요. 검사가 실패하면 다음 변경을 하기 전에 원인을 조사하세요.
기본 URL과 필요한 API 키로 OpenAI 호환 또는 Anthropic 엔드포인트를 설정하고 연결을 테스트하세요. 로컬 모델 서버는 실행 중이어야 합니다. 원격 도구는 데이터를 별도로 전송할 수 있습니다.
빈 트리와 조상 경계를 시험하고 중복 키는 거짓으로 반환하며 순환과 공유 자식 및 잘못된 노드와 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 프로젝트 작업 공간과 소스 파일에 연결된 AI 대화를 제공합니다. 애플리케이션이 어디서 구조를 받고 검증 결과를 어떻게 사용하는지 보여주며 시작하세요. 더 단순한 검사나 다른 순회를 제안하기 전에 모델에게 전체 경계를 살펴보도록 요청하세요.
예를 들어 bst_order.py 작업에서는 바로 아래 자식의 순서는 맞아 보이지만 더 깊은 값이 조상의 경계를 위반하는 트리를 조사할 수 있습니다. 실패 구조와 예상 결과를 포함하세요. 그런 다음 잘못된 노드와 반복 참조의 처리 방식을 물어보아, 순서 수정이 순회 대상의 형태에 관한 가정을 놓치지 않게 하세요.
유효한 트리, 순서 위반, 잘못된 구조라는 서로 다른 결과에 대해 제안을 검토하세요. 관련 프로젝트 검사를 실행하고 각 결과가 사용처에 어떻게 전달되는지 살펴보세요. 중복 키 정책 변경은 명시적으로 유지하세요. 사소한 비교 수정처럼 보여도 주변 애플리케이션이 허용하는 데이터가 바뀔 수 있습니다.
TreeSentinel은 지원되는 OpenAI 호환 또는 Anthropic 엔드포인트에 연결하며 필요한 경우 인증 정보를 사용합니다. 엔드포인트가 제공하면 어블리터레이션 AI 모델을 선택할 수 있습니다. 제공자 제한, 컨텍스트 한도, 사용 가능한 도구는 해당 설정의 일부로 남습니다. 검토는 모델의 자신감보다 구체적인 구조와 관측 가능한 결과에 의존해야 합니다.
국소 비교는 통과해도 자손이 더 위 조상의 경계를 위반할 수 있습니다. 그 차이를 드러내는 작은 중첩 테스트 사례와 예상 결과를 제공하세요. 검증 로직 단순화를 수락하기 전에 제안된 순회를 대조하세요.
애플리케이션 계약에 정의하세요. 예제는 같은 키를 배제하는 엄격한 순서를 적용합니다. 사용처가 잘못된 입력과 형태는 맞지만 순서를 위반한 구조를 구분하는지 살펴보고, 제안 변경에서 그 응답 규약을 보존하세요.
개별 값이 적절해 보여도 입력이 루틴이 기대하는 트리 형태가 아님을 뜻할 수 있습니다. 적절한 경우 공유 참조나 순환 테스트 사례를 포함하세요. 일반적인 중첩 예제에만 의존하지 말고 종료와 거부 동작을 확인하세요.
호출자가 필요로 하는 구조와 실패 동작을 고려한 뒤에만 가능합니다. 펼친 값 검사는 잘못된 노드나 순회 가정을 숨길 수 있습니다. 검증 계약을 바꾸기 전에 모델에게 실제 소스로 장단점을 설명하도록 요청하세요.
TreeSentinel · 업데이트 2026-10-25