LLM 호출 후에가 아니라, 호출 전에 Pydantic 스키마를 검증하세요
요약
LLM 호출 전 Pydantic 스키마를 미리 검증하여 불필요한 토큰 소모와 재시도를 줄이는 방법을 제안합니다. 스키마 자체의 오류와 모델의 응답 오류를 분리함으로써 런타임 비용을 절감하고 시스템 안정성을 높일 수 있습니다.
핵심 포인트
- LLM 호출 전 Pydantic 모델을 통한 사전 검증 수행
- 스키마 오류와 모델 응답 오류의 명확한 분리
- 잘못된 스키마로 인한 불필요한 토큰 예산 소모 방지
- CI 또는 부팅 단계에서 스키마 버그 조기 발견 가능
스키마 관련 재시도(retries)를 줄여준 작은 변화가 있습니다. LLM이 응답한 후가 아니라, 요청을 보내기 전에 Pydantic 모델을 검증하는 것입니다. 일반적인 흐름은 호출하고, 파싱(parse)하고, 검증 오류(validation error)를 포착한 뒤, 재시도하는 방식입니다. 이 방식은 스키마가 잘못되었다는 것을 알기도 전에 전체 토큰 예산(token budget)을 소모해 버립니다. 대신, 우리는 부팅 시점과 스키마가 변경될 때마다 더미 데이터(dummy data)로 대상 모델을 인스턴스화(instantiate)하고, 실제 호출 전에 이미 검증된 예시를 사용하여 드라이 파싱(dry-parse)을 수행합니다. 만약 스키마 자체가 깨져 있다면(잘못된 디스크리미네이터(discriminator), 잘못된 필드 타입, 이름이 변경된 열거형(enum) 등), 유료 호출 단계가 아니라 CI 또는 부팅 단계에서 실패하게 됩니다. 단 두 줄의 코드로 런타임 비용(runtime cost)은 전혀 들지 않으면서, 모델에 도달하기 전 스키마 버그의 약 60%를 잡아냈습니다. 나머지 40%는 실제 모델의 실패이며, 바로 그런 경우들이 재시도할 가치가 있는 것들입니다. '내 스키마가 틀린 것'과 '모델이 틀린 것'을 분리하는 것이 핵심입니다. 대부분의 재시도 루프(retry loops)는 이 둘을 혼동하며, 그 대가로 토큰을 지불합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기