피드로 돌아가기
Why My Regex-Based Parser Failed and How LLM Function Calling Saved Me
Dev.toDev.to
AI/ML

Regex 한계를 LLM Function Calling으로 해결해 추출 정확도 92% 달성

Why My Regex-Based Parser Failed and How LLM Function Calling Saved Me

zhongqiyue2026년 6월 8일5intermediate

Context

다양한 소스에서 유입되는 비정형 예약 데이터를 정형화하기 위해 Regex 기반 파서를 구축했으나, 400라인의 복잡한 패턴에도 불구하고 새로운 포맷 대응에 한계를 보인 상황. 소스 다양성 증가에 따른 유지보수 비용 급증과 Rule-based 방식의 문맥 파악 불가능 문제가 병목 지점으로 작용함.

Technical Solution

  • Pydantic을 활용한 엄격한 JSON Schema 정의로 데이터 타입과 구조의 강제성 부여
  • LLM Function Calling 도입을 통한 자연어 이해 기반의 구조적 데이터 추출 프로세스 설계
  • gpt-4o-mini 모델 채택을 통한 비용 최적화 및 처리 속도 확보
  • Current Date 정보를 System Prompt에 주입하여 '다음 주 화요일'과 같은 Relative Date 해석 오류 해결
  • Pydantic 모델 검증 로직을 통한 LLM 출력값의 Type Checking 및 데이터 정합성 확보
  • Few-shot Prompting 적용으로 복잡한 날짜 형식에 대한 모델 인식률 개선

Impact

  • 서로 다른 클리닉의 이메일 50건 테스트 결과 약 92%의 추출 정확도 기록
  • 단일 요청당 약 0.1¢의 비용과 1~2초의 Latency 발생

1. 비정형 텍스트 추출 시 Regex 대신 JSON Schema 기반의 Function Calling 검토

2. 상대 날짜 처리를 위해 요청 시점의 기준 날짜(Reference Date)를 컨텍스트로 반드시 포함

3. Hallucination 방지를 위해 누락 필드에 대한 빈 값 처리 지침을 시스템 프롬프트에 명시

4. LLM 출력 이후 Pydantic이나 별도 Regex를 통한 2차 유효성 검증 단계 구축

원문 읽기