값이 모델 또는 실행 간에 달라지는 스키마 속성을 감지하고, 데이터를 오염시키기 전에 수정하세요 — 재현 가능하고 비교 가능하며 정밀한 보강을 위해.
Entity Enricher는 LLM을 쿼리 가능한 지식 베이스로 취급합니다. 이는 속성 이름이 재현 가능한 단일 답변을 고정할 때만 작동합니다. annual_revenue 같은 속성은 그렇지 못합니다. 어느 회계 연도인가요? 어느 통화인가요? 백만 단위인가요, 단위인가요? 모든 모델은 — 그리고 동일한 모델의 모든 재실행은 — 서로 다른 기준을 자유롭게 선택할 수 있으므로, 어떤 모델도 틀리지 않았는데도 값이 일치하지 않습니다.
불안정한 속성은 이후 모든 단계에 악영향을 미칩니다. 다중 모델 융합은 실제로는 기준 차이일 뿐인 충돌을 감지하고, 벤치마크 일관성 편차는 모델 품질과 무관한 이유로 커집니다. 비결정성 검사는 이러한 속성을 찾아 고정하는 방법을 알려줍니다.
플래그가 지정된 모든 속성은 네 가지 원인 중 하나로 분류되며, 각각 고유한 해결책이 있습니다:
| 원인 | 예시 | 해결 방법 |
|---|---|---|
| 시간적 | ceo, stock_priceceo_2025 | 기준 날짜가 없는 변동 사실 — 기간을 고정하거나, 기간을 키로 하는 배열로 재구성하세요. |
| 모호함 | annual_revenuerevenue_fy2024_usd_millions | 이름이 단위, 통화, 기간 또는 범위를 고정하지 않습니다 — 누락된 기준을 이름이나 설명에 포함하세요. |
| 주관적 | reputationesg_risk_rating_sustainalytics | 객관적인 정답이 없음 — 측정 가능한 프록시나 고정된 척도로 교체하세요. 그렇지 않으면 참고용으로 플래그가 유지됩니다. |
| 다중 값 | top_competitorstop_3_competitors_by_revenue | 똑같이 올바른 답이 여러 개 있으며, 대개 제한 없는 목록입니다 — 범위를 제한하고 정렬 기준을 명시하세요. |
이름 변경만이 유일한 해결책은 아닙니다. 스키마 속성의 경우 분석기는 누락된 맥락을 고정하는 설명 수정도 제안합니다. 더 명확한 설명은 이름과 똑같이 보강 AI에 전달되지만, 데이터 계약을 절대 깨뜨리지 않습니다 — 따라서 이미 사용 중인 스키마에는 이 방법이 권장됩니다.
샘플이 생성된 후 분석기가 이를 검토합니다. 모호하지 않은 이름 변경은 AI가 만들어낸 키에 자동으로 적용되며(직접 이름을 지정한 필드에는 절대 적용되지 않습니다), 구조적 수정은 최대 두 차례의 수정 과정을 거치도록 생성기로 다시 전달됩니다. 첨부 문서에 근거한 샘플은 건너뜁니다 — 해당 값은 모델의 기억이 아니라 원본 문서에서 나오기 때문입니다.
생성된 스키마가 저장되면 후처리 단계가 모든 속성에 비결정성 수준을 주석으로 표시합니다. 이 단계는 최선의 노력으로 수행됩니다. 실패하더라도 생성 자체에는 영향을 주지 않습니다.
재검사 버튼은 아직 주석이 없는 속성만 분석하며, 모든 속성에 주석이 달리면 전체 재분석으로 전환됩니다.
스키마 생성을 위해 붙여넣은 샘플 JSON은 상태를 저장하지 않고 분석할 수 있습니다 — 아무것도 수정하지 않고 위험한 속성 이름에 대한 보고서를 받습니다.
이 검사는 참고용일 뿐입니다. 생성을 차단하지 않고, 보강을 거부하지 않으며, 주석은 보강 모델로 전송되는 모든 프롬프트에서 제거됩니다 — AI가 아니라 사용자에게 정보를 제공합니다.
플래그가 지정된 속성은 스키마 편집기에서 “달라짐” 배지를 표시합니다. 중간 위험은 황색, 높은 위험은 빨간색입니다. 배지에 마우스를 올리면 무엇이 왜 달라지는지 설명하는 분석기 노트가 표시됩니다. 결정론적으로 판정된 속성에는 배지가 없습니다.
판정은 속성의 이름과 설명을 함께 평가하여 내려집니다 — 따라서 속성 이름을 변경하거나 설명을 편집하면 해당 주석이 삭제됩니다. 편집기는 이러한 속성을 오래된 것으로 강조 표시하고 누락된 부분만 분석하는 재확인 기능을 제공합니다. 이는 제안된 이름 변경을 적용한 후에 정확히 필요한 기능입니다. 재확인을 통해 새 이름이 결정론적인지 확인할 수 있습니다.
검사는 스키마 편집기의 오버플로 메뉴에서 스키마별로 끌 수 있습니다. 비활성화하면 생성 후 처리 단계가 건너뛰어지고 배지, 재검사 버튼, 오래됨 경고가 숨겨집니다. 기존 주석은 유지되며(숨겨질 뿐), 한 번도 분석되지 않은 스키마에서 검사를 다시 활성화하면 자동으로 실행됩니다.
첨부된 문서에서 생성된 스키마는 검사가 비활성화된 상태로 시작합니다. 값이 원본 문서에서 그대로 옮겨지므로, 모델 지식의 실행 간 편차가 적용되지 않습니다.
분석기 노트는 사용자의 인터페이스 언어로 작성됩니다 — 프랑스어 사용자는 프랑스어 설명을, 일본어 사용자는 일본어 설명을 봅니다. 제안된 속성 이름은 스키마 명명 규칙에 맞추어 영어로 유지됩니다.
각 분석은 실제 (저렴한) 모델 호출로, 레코드에 자체 프롬프트로 기록되며 다른 AI 사용량과 마찬가지로 크레딧에서 차감됩니다. 증분 재확인은 실제로 분석된 속성에 대해서만 비용이 청구됩니다.
스키마 생성 자체는 결정적인 이름과 설명(고정된 기간, 단위, 정렬 기준)을 생성하도록 지시되므로, 대부분의 스키마는 깔끔하게 나오고 분석기는 남은 몇 개만 잡아내면 됩니다.
이 검사는 프로그래밍 방식으로도 사용할 수 있습니다:
| 표면 형식 | 설명 |
|---|---|
POST /api/schema/analyze-sample | 붙여넣은 샘플 JSON을 분석합니다 — 상태 비저장 보고서이며 아무것도 수정되지 않습니다 |
POST /api/schema/saved/{id}/analyze | 저장된 스키마를 분석하고 주석을 작성합니다 — 기본값은 증분 방식이며, force=true는 전체를 다시 분석합니다 |
analyze_sample_determinism | MCP 도구 — Claude 또는 모든 MCP 클라이언트에서 제공되는 동일한 상태 비저장 샘플 보고서 |
analyze_schema_determinism | MCP 도구 — 저장된 스키마에 주석을 추가합니다. edit_schema와 결합하여 제안된 이름 변경을 적용하세요 |
인증과 전체 도구 카탈로그는 API 레퍼런스와 MCP Server 가이드를 참조하세요.