보강 흐름 - Entity Enricher 문서

보강 흐름

Entity Enricher가 단일 엔터티를 처리하는 방식을 단계별로 안내합니다 — 입력에서 분류, 병렬 모델 실행을 거쳐 구조화된 출력까지.

파이프라인 한눈에 보기

입력
엔터티 JSON
+ 스키마
분류
선택적
유형 확인
병렬 model
Claude
재무
규제
일반
GPT-4
재무
규제
일반
검증
유형 검사
자가 수정
출력
구조화된
모델별 JSON

1단계: 강화 구성

Schema Editor 페이지를 열고 보강을 설정합니다. 워크플로 스테퍼가 Sample Data, Schema, Enrichment, Results 등 파이프라인 단계를 안내합니다.

스키마 패널(왼쪽)

샘플 JSON을 붙여넣어 스키마를 자동 생성한 다음, 대화형 속성 트리를 살펴보세요. 속성을 편집하고 전문 분야를 추가하며 필드를 검색 키나 보존 대상으로 지정하세요.

보강 패널 (오른쪽)

강화 옵션(전략, 모델, 언어, 분류, 응답 스키마 및 엄격한 구조화 출력 토글)을 구성하고 엔티티 검색 키(이름, 웹사이트, 국가 등)를 입력하여 엔티티를 식별하세요.

결과 패널

각 모델의 실시간 진행 상황과 결과를 표시합니다. 여러 모델을 사용할 경우 융합을 위한 “결과 병합” 버튼이 나타납니다.

2단계: 사전 분류 (선택 사항)

분류 모델을 선택한 경우, 엔터티가 스키마 유형과 일치하는지 확인하기 위해 빠르고 저렴한 LLM 호출이 먼저 실행됩니다. 이는 엔터티가 일치하지 않을 때 강화에 토큰을 낭비하는 것을 방지합니다. 자세한 내용은 분류 문서에서 확인하세요.

비차단: 어떤 이유로든 분류가 실패해도 보강은 정상적으로 진행됩니다. 분류는 순전히 참고용입니다 — 보강 프롬프트에 컨텍스트를 추가하지만 파이프라인을 절대 차단하지 않습니다.

3단계: 전략 실행

선택한 각 모델은 선택하신 전략을 사용하여 엔터티를 처리합니다. 여러 모델을 선택하면 프로바이더 전반에 걸쳐 병렬로 실행되며(Claude와 GPT-4가 동시에 실행), 동일한 프로바이더의 모델은 속도 제한을 준수하기 위해 순차적으로 실행됩니다.

다중 전문 분야 예시(3개 분야)
1
전문 분야별로 스키마 분할
속성은 전문 영역별로 그룹화됩니다: 재무 필드, 규제 필드, 일반 필드.
2
병렬 LLM 호출을 실행합니다
각 expertise는 관련된 schema 속성만 담긴 집중된 prompt를 받습니다. 모두 동시에 실행됩니다.
3
결과를 점진적으로 fusion합니다
각 전문 영역이 완료되면 그 출력이 누적된 결과에 병합됩니다. 부분 결과를 실시간으로 확인할 수 있습니다.
4
보존 로직 적용
'preserve'로 표시된 필드의 원래 값이 복원되어 입력 데이터가 그대로 유지됩니다.

4단계: 검증 및 자체 수정

각 LLM 응답은 schema에 대해 실시간으로 검증됩니다. 출력이 예상되는 타입이나 제약 조건과 일치하지 않으면 시스템이 자동으로 오류를 LLM에 다시 보내 수정하도록 합니다.

자동으로 수정되는 항목:
숫자 대신 문자열
"42.2"는 42.2가 됩니다
배열로 인덱싱된 객체
{"0": "a", "1": "b"}은(는) ["a", "b"]가 됩니다
문자열 null
"null" 또는 "None"은 실제 null이 됩니다
필수 필드 누락
오류가 다시 전송되고, LLM이 이를 채웁니다

LLM 호출당 최대 5회까지 자동으로 재시도합니다. 각 재시도에는 구체적인 검증 오류가 포함되어 LLM이 무엇을 수정해야 하는지 정확히 알 수 있습니다.

소스에서 출력 강제

선택적 토글 두 개는 provider가 출력을 반환하기 전에 제약하도록 요청하므로, 애초에 수정이 필요한 응답이 줄어듭니다. 둘 다 이를 지원하는 model에만 적용되며, 나머지는 모두 위의 검증 및 재시도 루프로 처리됩니다.

응답 스키마
provider의 기본 응답 schema 채널로 schema를 전송하여 JSON이 서버 측에서 강제되도록 합니다. 기본적으로 비활성화되어 있으며, 그렇지 않으면 지원 가능한 model은 도구 호출 채널을 사용합니다.
엄격한 구조화된 출력
사용되는 구조화 채널에 관계없이 디코딩을 schema로 제약합니다(드리프트 없음). 기본적으로 켜져 있으며, 이를 적용할 수 없는 model에서는 조용히 무시됩니다.

5단계: 실시간 스트리밍

Entity Enricher는 Server-Sent Events(SSE)를 사용하여 진행 상황을 실시간으로 스트리밍합니다. 모든 모델이 완료될 때까지 기다릴 필요가 없습니다 — 각 전문 분야 또는 모델이 완료될 때마다 결과가 점진적으로 나타납니다.

이벤트 타임라인 (모델 2개, 전문 영역 3개 예시)
0.0sstarted작업이 시작되고 모델 2개가 대기열에 추가됩니다
0.1sclassification_started사전 점검 시작
0.8sclassification_completed엔터티가 "일치"로 확인됨(95%)
0.9smodel_startedClaude와 GPT-4가 병렬로 시작됩니다
1.2sexpertise_completedClaude: 재무 완료, 부분 결과 스트리밍됨
1.5sexpertise_completedClaude: 일반 완료, 결과 업데이트됨
1.8sexpertise_completedClaude: 규제 완료, 전체 결과 준비됨
1.9smodel_completedClaude가 완전한 구조화된 출력으로 완료되었습니다
2.5smodel_completedGPT-4가 완전한 구조화된 출력으로 완료되었습니다
2.5scompleted모든 모델 완료, 스트림 종료

6단계: 결과 검토

각 model은 구조화된 JSON 출력, expertise별 진행 배지, 토큰 사용량, 비용, 처리 시간을 표시하는 자체 결과 패널을 갖습니다. 다중 expertise 전략을 사용할 때는 각 도메인이 완료됨에 따라 expertise 배지가 실시간으로 업데이트됩니다.

모델별로 보이는 항목:
  • 상태 배지 — 대기 중, 실행 중, 성공, 실패 또는 부분 완료
  • 전문 분야 배지 — 분야별 진행 상황을 보여주는 색상 알약(파란색 = 실행 중, 초록색 = 완료, 빨간색 = 실패)
  • 점진적 JSON — 각 전문 분야가 완료될 때마다 출력이 업데이트됩니다
  • 지표 — 처리 시간, 토큰 수, USD 단위 비용
  • 진행 로그 — 모든 이벤트에 대한 타임스탬프가 찍힌 항목

부분 성공 처리

다중 전문 분야 전략을 사용하면 일부 전문 분야는 실패하고 다른 전문 분야는 성공할 수 있습니다. Entity Enricher는 전체를 폐기하는 대신 성공한 전문 분야의 병합된 출력을 “부분” 상태로 반환합니다. 그런 다음 전체 강화를 다시 실행하지 않고 실패한 전문 분야만 재시도할 수 있습니다.

예시: 3개의 전문 분야 중 2개가 성공하면, 성공한 분야를 다루는 구조화된 출력을 얻습니다. 실패한 전문 분야는 다시 시도할 수 있으며, 그 결과는 기존 출력에 병합됩니다.

다음에 무슨 일이 일어나나요?

보강이 완료되면 결과가 나중에 참조할 수 있도록 레코드 페이지에 저장됩니다. 여러 모델을 사용한 경우 Multi-Model Fusion을 사용하여 결과를 병합할 수 있습니다.