13.6.5 원본 텍스트의 근거 위치(Span/Reference) 반환 요청을 통한 추적성 확보
가혹한 엔터프라이즈 컴플라이언스(Compliance) 환경에서 비정형 데이터 추출 파이프라인의 궁극적 목표는 ‘AI가 높은 확률로 정답 수치를 맞히는 것’ 그 자체에 머무르지 않는다. 백엔드 시스템 오라클, 혹은 그 추출된 트랜잭션 데이터를 최종적으로 결재하고 책임져야 하는 인간 최고 재무 책임자(Human-in-the-Loop)의 가장 본질적이고 근원적인 질문은 단 하나다.
“LLM 에이전트야, 너는 도대체 이 숫자를 문서의 어디에서 보고 베껴온 것이냐?”
100장의 거대한 이종 영수증 더미에서 무심하게 숫잣값 덩어리만 덜렁 내어놓고 입을 닫아버리는 오만방자한 ‘블랙박스(Blackbox)’ 모델은, 제아무리 그 정답률이 99%에 달한다 하더라도 오라클 아키텍처 세계에서 결코 온전한 신뢰를 받을 수 없다.
따라서 정제된 수치 데이터를 추출함과 동시에, 그 수치의 추론 근원이 된 원본 텍스트의 **물리적인 근거 위치(Evidence Span / Reference)**를 강제로 함께 바인딩하여 반환하도록 압박하는 **‘추적성(Traceability) 확보 프롬프트 전략’**이야말로, 13.6절 방어적 프롬프트 엔지니어링 챕터의 화룡점정을 직조하는 마스터키가 된다.
1. Span-Reference 필드의 강박적인 Pydantic 스키마 매핑
이를 구현하기 위해 파이프라인 아키텍트는 1단계 Pydantic의 설계 단계에서부터 모든 주요 추출 필드 옆에, 해당 필드의 결괏값을 도출하게 된 원본 텍스트 조각을 직렬화하여 담아내는 _reference_span 접미사 필드를 마치 그림자처럼 강박적으로 일대일 동반 매핑(1:1 Binding) 시켜야 한다.
from pydantic import BaseModel, Field
class TraceableInvoiceExtractionOracle(BaseModel):
# (1) 연산 및 오라클 검증에 사용될 실제 숫자 값 필드
total_amount: float
# (2) 파이프라인 관찰 가능성(Observability)을 위한 원문 근거 필드
total_amount_reference_span: str = Field(
...,
description="total_amount 값을 도출할 때 참조한 원본 문서 내의 "
"'정확한 핵심 문장이나 텍스트 덩어리 조각(Span)'을 1글자의 토큰 변형도 없이 "
"그대로 하드카피(Hard-copy)해서 붙여 넣으시오."
)
2. 프롬프트를 통한 하드 카피(Hard Copy) 강제와 환각 억제
시스템 프롬프트의 두뇌에는, 이 소중한 참조(Reference) 데이터 필드에조차 자신의 오만방자한 상상력을 발휘하여 환각(Hallucination) 문장을 요약해 적어 넣는 끔찍한 사태를 억제하기 위해 가장 무자비한 카피 앤 페이스트(Copy and Paste) 제약(Constraint) 명령을 걸어두어야 한다.
[원본 근거 위치(Reference Span) 반환 필수 제약 사항]
각 추출된 데이터 키에 대해 `_reference_span` 이라는 이름표가 붙은 필드에는
절대로 당신의 분석적 사고나 요약 따위를 서술하여 적어 넣지 마라.
오직 전처리된 OCR 텍스트 레이아웃이나 원본 문서 이미지 픽셀 구조 위에, 물리적 육안으로 인쇄되어
남아있는 그 기하학적 텍스트 덩어리(Span) 자체를, 단 1바이트의 토큰 조작이나 변형도 주지 말고
무식하고 건조하게 '복사(Copy)하여 붙여 넣기(Paste)' 해라.
이 Reference Span 필드는 향후 오라클 검증이 실패하여 인간 통제관(HITL)이 원본 이미지와
당신의 추출 값을 교차 대조(Cross-Check) 할 때, 화면에 빨간색 형광펜을 칠하기 위한 핵심
좌표 하이라이트(Bounding Box Highlight) 매핑 지표로 엄격하게 사용될 것이다.
3. Human-in-the-Loop (HITL) 큐에서의 폭발적 위력과 결론
이 무자비한 근거 위치(Span) 반환 압박 프롬프트는, 단순히 LLM을 괴롭히기 위함이 아니다. 이 데이터가 앞서 13장에서 구축한 무시무시한 오라클의 3단계 검증망(Syntax, Semantic, Lookup) 중 어느 한 곳이라도 뚫어내지 못하고 ValueError 파편을 일으켜 **인간의 수동 심사 전문가 큐(HITL Queue)**로 튕겨 나갔을 때, 그 진정한 시너지와 폭발적인 위력을 발휘하게 된다.
파이프라인이 뱉어낸 에러를 받아든 인간 재무 감사관(Auditor)은, 더 이상 폰트 크기가 8pt에 불과한 50페이지짜리 거대한 PDF 덩어리 전체를 독수리 눈으로 헤집고 다니며 *“대체 AI 모델이 왜 이 엉뚱한 값을 세금으로 오인하여 추출했을까?”*를 고통스럽게 역추적하고 디버깅할 육체적 수고를 할 필요가 전혀 없다.
백오피스 감사 시스템의 UI(User Interface) 화면에는 원본 영수증 이미지 스캔본이 띄워짐과 동시에, 화면 우측에서 통과에 실패한 LLM의 reference_span 텍스트 조각이 반짝인다.
동시에 UI는 프론트엔드의 KMP 매칭 알고리즘이나 NLP 임베딩을 통해, 이미지 위 어느 물리적 위치(좌표)에 그 텍스트가 적혀 있는지에 즉각적으로 빨간색 네모 칸(Bounding Box Highlight) 박스를 자동으로 쳐주게 된다.
인간 감사관은 LLM이 잘못 바라본 그 어텐션 핫스팟(Hotspot) 지점 단 한 곳으로 즉시 시선을 이동시켜, 그것이 AI의 치명적인 자체 연산 지능 환각 때문인지, 아니면 애초에 바깥에서 영수증을 잘못 구겨 넣어 생긴 더러운 물리적 오타인지를 단 1초의 시선 교환만으로 손쉽게 판독(Audit) 할 수 있게 된다.
이처럼 정교하게 공학 된 ’방어적 프롬프트 엔지니어링’은, LLM 모델 스스로가 자신의 추론 결과물에 투명한 공탁금과 같은 증명서(Certificate)를 발급하게 강제함으로써, 전체 비정형 추출 파이프라인의 에러 해결(Resolution) 디버깅 속도와 인건비 지출 비율을 가장 극단적인 바닥까지 떨어뜨리는 최고의 무기가 된다.