import json
def unique_members(pairs):
result = {}
for key, value in pairs:
if key in result:
raise ValueError("member.duplicate")
result[key] = value
return result
def reject_constant(value):
raise ValueError("constant.invalid")
def parse_unique(text):
return json.loads(text, object_pairs_hook=unique_members,
parse_constant=reject_constant)| 적용하기 전에 검토하세요 | 실제 동작을 예상 결과와 비교하세요. 검사가 실패하면 다음 변경을 하기 전에 원인을 조사하세요. |
|---|---|
| 모델 | 기본 URL과 필요한 API 키로 OpenAI 호환 또는 Anthropic 엔드포인트를 설정하고 연결을 테스트하세요. 로컬 모델 서버는 실행 중이어야 합니다. 원격 도구는 데이터를 별도로 전송할 수 있습니다. |
| 프로젝트 | 같은 의미의 이스케이프 키와 NaN 및 Infinity를 시험하고 서로 다른 객체에서는 같은 이름을 허용하세요. |
import json
def unique_members(pairs):
result = {}
for key, value in pairs:
if key in result:
raise ValueError("member.duplicate")
result[key] = value
return result
def reject_constant(value):
raise ValueError("constant.invalid")
def parse_unique(text):
return json.loads(text, object_pairs_hook=unique_members,
parse_constant=reject_constant)거부되는 JSON을 애플리케이션 규약에 포함하세요
KeySentra는 연결된 AI 모델과 소스 변경을 논의하는 Windows 코딩 작업 공간을 제공합니다. 파싱 작업은 단순히 JSON을 읽어 달라는 요청이 아니라 애플리케이션의 허용 규칙에서 시작해야 합니다. 프로젝트 폴더를 열고 텍스트가 파서에 들어가는 위치와 파싱된 객체가 신뢰하는 애플리케이션 데이터가 되는 위치를 파악하세요.
예를 들어 객체 멤버가 반복될 때 값을 조용히 유지하지 않고 거부하도록 요청할 수 있습니다. 중첩 객체와 이스케이프를 풀면 동일해지는 키를 논의에 포함하고 호출부가 거부된 입력을 어떻게 알리는지 설명하세요. 목표는 수집 경로의 검토 가능한 변경이며 작업 공간 자체가 애플리케이션의 JSON 파서가 되는 것은 아닙니다.
모호한 입력과 서로 다른 객체에서 유효하게 반복되는 키를 구분하는 테스트 데이터와 함께 수정 제안을 읽으세요. 규약에서 거부한다면 비표준 숫자 상수도 확인하세요. 프로젝트 도구로 이 사례들을 실행하고 파서 결과와 호출부 동작을 모두 살펴보세요. 더 엄격한 입력 처리 때문에 예상된 클라이언트 오류가 뜻밖에 처리되지 않은 실패로 바뀌지 않도록 하세요.
KeySentra는 OpenAI 호환 또는 Anthropic 엔드포인트 연결을 지원하며 필요하면 인증 정보를 사용합니다. 엔드포인트가 제공하는 선택지에 무필터 AI 모델이 있을 수 있습니다. 그 명칭이 파서 정책을 정의하거나 서비스 사용에 필터가 없음을 보장하지는 않습니다. 컨텍스트 용량, 도구 지원, 자체 운영 조건은 여전히 모델과 서버가 결정합니다.
JSON 허용 규칙 강화에 관한 질문
어떤 중복 예가 검토에 도움이 되나요?
한 객체 안의 반복 키, 중첩된 중복, 디코딩하면 같은 이름이 되는 이스케이프 표기를 포함하세요. 서로 다른 객체에서 같은 키를 적법하게 사용하는 사례도 포함하세요. 제안은 명시한 정책에 따라 이를 구분해야 합니다.
반복되는 모든 멤버 이름을 거부해야 하나요?
범위를 신중하게 명시하세요. 한 객체 안의 반복 이름과 별개의 객체에 나오는 같은 이름은 다릅니다. 모델에 파서가 객체 경계를 추적하는 방식을 살펴보도록 요청하고 정상적인 중첩 구조가 계속 허용되는지 검증하세요.
더 엄격하게 파싱한 뒤 호출부를 살펴보는 이유는 무엇인가요?
새 거부 사례가 애플리케이션이 기대하는 응답이나 오류 경로로 전달되어야 합니다. 해당 호출부를 대화에 보여 주고 동작을 테스트하세요. 모호함을 올바르게 탐지해도 요청의 다른 곳에서 실패를 잘못 처리한다면 충분하지 않습니다.
운영 데이터를 테스트 데이터로 사용해도 되나요?
관련 키 구조와 숫자 사례를 유지하면서 축소하고 민감한 정보를 제거한 데이터를 우선 사용하세요. 설정한 엔드포인트는 공유한 컨텍스트를 받으며 연결된 도구는 별도의 목적지를 가질 수 있습니다. 불필요한 예제에 고객 데이터나 인증 정보를 넣지 마세요.
KeySentra · 업데이트 2026-10-25