Jev 조례 인용 검증 게이트

September 20, 2026 · View on GitHub

AI가 조례에 대해 답한 문장이 인용한 조문에 실제로 근거하는지를 Jev(TypeSafe AI System One 모델)에게 판정시키는 실험입니다. 생성 모델을 대체하는 게 아니라, 생성된 답의 근거를 별도 모델이 채점하는 "게이트" 한 칸을 시험합니다.

  • 1차 20쌍(조례 1건): 20/20 → 결과_20260920.md
  • 2차 100쌍(조례 5건·6유형): 97/100, 모순 31/31, 통과시키면 안 될 것을 통과시킨 건 0 → 결과100_20260920.md
  • 지방자치혁신연구원, 2026-09-20. 1회 관찰이며 성능 주장이 아닙니다.

무엇이 들어 있나

파일내용
dataset.json1차 20쌍. 광진구 주민참여예산제 운영 조례 6개 조문 + 답변 20문장 + 정답
dataset100.json2차 100쌍. 서울시·경기도·강남구·수원시·순천시 조례 17개 조문 + 답변 100문장 + 정답·유형
build100.pydataset100.json을 만든 스크립트(조문 원문 포함). 문장을 바꿔 다시 만들 때
run.mjs실행기. 쌍마다 Choice{지지·모순·무관} + Boolean{조문만으로 성립하는가}를 묻고 집계
result.json / result100.json실측 원자료(확률 분포·토큰)

조문은 법제처 국가법령정보센터 자치법규를 그대로 옮겼고, 실험용으로 일부 항·호만 발췌했습니다. 개인정보·비공개 자료는 없습니다.

돌리는 법

npm install

인증은 둘 중 하나:

  • Vercel AI Gateway: AI_GATEWAY_API_KEY=vck_... (대시보드 → AI Gateway → API Keys). 2026-09-25까지 Jev 무료 프로모션. Vercel 프로젝트가 있으면 vercel env pull .env로 받은 VERCEL_OIDC_TOKEN도 됩니다(12시간 유효).
  • (준비 중) TypeSafe 직접 키는 이 스크립트가 아직 지원하지 않습니다. @typesafe-ai/sdk로 바꾸려면 evaluate 호출부만 교체하면 됩니다.
node --env-file=.env run.mjs                               # 1차 20쌍
node --env-file=.env run.mjs dataset100.json result100.json  # 2차 100쌍

게이트웨이 한도가 30요청/분이라 쌍당 2.1초 간격을 두고, 429가 오면 20초 단위로 재시도합니다. 100쌍 약 6분, 입력 8만 토큰(약 $0.0035).

결과 읽는 법

콘솔 한 줄 = 한 쌍: ID 유형 정답 → Jev판정 grounded=근거성 OK|MISS. 마지막 줄이 집계입니다.

  • jev_choice: 지지/모순/무관 중 최댓값. jev_probs가 분포.
  • grounded: "이 답변은 인용된 조문만으로 성립하는가"의 참 확률. 우리 실측에서는 0.5 미만이면 사람 검토가 맞았습니다(모순·무관은 전부 0.1 이하, 지지는 대부분 0.8 이상).
  • confidence 필드는 분포 집중도이지 정확도가 아닙니다. 확률 분포를 보십시오.

알려진 한계·주의

  1. 답변에 기관명·조례명을 쓰면 조문 발췌에 그 이름이 없어 근거성이 떨어집니다. 실제로 쓸 때는 state에 조례명·기관명을 함께 넣으십시오.
  2. Jev의 주 학습 언어는 영어입니다. 한국어 품질은 이 실험 범위(조례 5건, 합성 문장) 안에서만 관찰된 것입니다.
  3. 국외 API입니다. 민원 원문·개인정보를 state에 넣지 마십시오. 공개 조문과 합성 문장만.
  4. 확률은 보정된 정답률이 아닙니다. 업무별로 정답과 대조해 임계를 정해야 합니다.

자기 조례로 해보려면

build100.pyA(조문 사전)와 add(...) 줄을 바꾸고 python build100.py를 돌리면 새 데이터셋이 나옵니다. add(유형, 조문키 또는 [조문키, 조문키], 정답, 답변문장). 정답은 지지/모순/무관 셋 중 하나입니다.

문의: 지방자치혁신연구원 원성묵 (jachinews.kr)