프로젝트
빈 루트 포인터와 이스케이프된 키를 시험하고 잘못된 이스케이프, 없는 항목, 비정규 배열 인덱스를 거부합니다.
import re
def pointer_get(root, pointer):
if not isinstance(pointer, str): raise ValueError("pointer text")
if pointer == "": return root
if not pointer.startswith("/"): raise ValueError("root slash")
value = root
for raw in pointer[1:].split("/"):
if re.search(r"~(?![01])", raw): raise ValueError("escape")
key = raw.replace("~1", "/").replace("~0", "~")
if isinstance(value, dict): value = value[key]
elif isinstance(value, list):
if not re.fullmatch(r"0|[1-9][0-9]*", key):
raise ValueError("array index")
if len(key) > len(str(len(value))): raise IndexError(key)
value = value[int(key)]
else: raise ValueError("not a container")
return value빈 루트 포인터와 이스케이프된 키를 시험하고 잘못된 이스케이프, 없는 항목, 비정규 배열 인덱스를 거부합니다.
실제 동작을 예상 결과와 비교하세요. 검사가 실패하면 다음 변경을 하기 전에 원인을 조사하세요.
기본 URL과 필요한 API 키로 OpenAI 호환 또는 Anthropic 엔드포인트를 설정하고 연결을 테스트하세요. 로컬 모델 서버는 실행 중이어야 합니다. 원격 도구는 데이터를 별도로 전송할 수 있습니다.
import re
def pointer_get(root, pointer):
if not isinstance(pointer, str): raise ValueError("pointer text")
if pointer == "": return root
if not pointer.startswith("/"): raise ValueError("root slash")
value = root
for raw in pointer[1:].split("/"):
if re.search(r"~(?![01])", raw): raise ValueError("escape")
key = raw.replace("~1", "/").replace("~0", "~")
if isinstance(value, dict): value = value[key]
elif isinstance(value, list):
if not re.fullmatch(r"0|[1-9][0-9]*", key):
raise ValueError("array index")
if len(key) > len(str(len(value))): raise IndexError(key)
value = value[int(key)]
else: raise ValueError("not a container")
return valuePointerMallow는 프로젝트의 구조화된 데이터 동작을 추적하는 Windows AI 코딩 작업 공간을 제공합니다. 경로, 데이터 형태, 기대 값이 모두 대화에 있으면 조회 실패를 진단하기 쉽습니다. 작고 재현 가능한 데이터로 시작하고 실제로 이를 소비하는 구현을 살펴보도록 요청하세요.
JSON Pointer 조회를 요청 예제로 생각해 보세요. 슬래시가 든 객체 키, 배열 인덱스, 없는 대상을 제공하고 각각의 의도한 결과를 명시하세요. 현재 코드가 경로를 잘못 처리한다면 집중된 수정을 요청하세요. 테스트 데이터를 구현 및 호출부와 연결하는 데 가치가 있습니다.
성공 결과만 보지 말고 제안을 검토하세요. 잘못된 경로, 없는 키, 스칼라를 통과하는 탐색은 앱에서 서로 다르게 처리해야 할 수 있습니다. 변경을 읽고 관련 테스트를 실행하며 유효한 조회의 반환값만큼 소비 코드에 전달되는 오류도 주의 깊게 확인하세요.
모델은 필요한 인증 정보로 지원되는 OpenAI 호환 또는 Anthropic 엔드포인트에 연결할 수 있습니다. 거기서 제공하는 거부 성향 제거 AI 모델을 선택해도 제공업체 제한은 적용됩니다. 컨텍스트 한도와 도구는 모델과 서버별로 다르므로 추론과 제안 코드를 직접 평가할 수 있는 작은 데이터를 유지하세요.
각각의 데이터와 기대 결과를 따로 제공하세요. 현재 코드의 파싱 종료 지점과 탐색 시작 지점을 묻고 각 실패가 호출부에 전달되는 방식을 검토하세요. 모두 빈 결과로 합치면 입력 오류를 숨길 수 있습니다.
이를 담는 데이터 유형이 중요합니다. 숫자처럼 보이는 객체 키 사례와 별도 배열 사례를 포함하세요. 같은 텍스트가 항상 같은 유형의 위치를 뜻한다고 가정하지 말고 각 경로 처리 분기를 검토하세요.
문제의 원인이 되는 데이터 형태를 분리하고 기대 결과를 검증하기 쉽게 합니다. 실패 경로를 유지하며 불필요한 필드와 민감한 값을 제거한 뒤 대표 프로젝트 데이터로 수정을 확인하세요.
계약은 애플리케이션에 속합니다. 다른 모델이 다른 오류 규칙을 제안해도 동작 변경을 허용하는 것은 아닙니다. 도구 목적지도 검토하세요. 로컬 모델 서버가 모든 연결 도구를 로컬로 만들지는 않습니다.
PointerMallow · 업데이트 2026-10-25