검색 후보 누락과 인용 주장 지지 분리: 수동 검수 실습
자료 기준일: 2026-10-13

1. 자료 성격
4개 회의실 예약 문서와 6개 질문, 기대답, 3개 오류 사례는 이 실습을 위해 만든 합성 자료다. 실제 사업자의 예약 규정이나 약관이 아니다.
실제 검색 엔진 호출은 0회, 실제 검색 로그는 0개, 실제 모델 응답은 0개다. 합성 기대답이나 오류 사례를 모델의 실제 성능으로 보고하지 않는다.
글 작업용 비교 대상 표기는 GPT-6.1 Sol·Claude Sonnet 5.5·Gemini 3.8 Flash이다. 이 묶음은 모델 실재 여부, 실제 API 모델 식별자, 네이티브 검색·인용 지원 여부를 검증하지 않는다.
이 묶음은 실행 가능한 제품 코드나 API 호출 코드를 포함하지 않는다. 비용·속도·토큰·모델 우열을 측정한 자료도 아니다.

2. 핵심 검수
문구가 원문에 존재한다는 사실과 그 문구가 옆의 사실 주장을 지지한다는 판단을 분리한다.
전체 원문에 있는 근거가 검색 후보에서 빠졌을 때, 후보의 근거 부족을 전체 원문의 근거 부재라고 단정하지 않는지 본다.
일반실·행사실 적용 공간을 먼저 확인하고, D04의 적용 절차에 따라 D01의 공간 구분 후 D02 또는 D03을 선택한다. 유리한 수치를 임의로 선택하지 않는다.
예약 날짜 계산, 참석 정원 또는 문서 버전 차이가 핵심인 실습은 아니다.

3. 파일 구분과 정답 누출 방지
sources/: 문장 ID S01부터 S24까지 고정한 원문 4개다. 같은 문장 ID가 다른 뜻으로 재사용되지 않는다.
inputs/common_request.txt: 모든 실제 실행에 공통으로 쓸 요청이다. 서술 답과 주장 ID별 근거를 요구한다. 엄격한 JSON 출력은 요구하지 않는다.
inputs/questions.csv 및 questions.json: 동일한 사용자 질문 6개다. 편한 형식을 하나만 사용한다.
inputs/retrieval_candidates_R1.json 및 R2.json: 실제 검색 로그가 아닌 수동 구성 후보다. 각 파일의 question_id와 일치하는 한 후보 묶음만 제공한다. 다른 질문의 후보를 합치지 않는다.
reviewer_only/: 기대답, 주장별 원문 직접 대조 기준, 검색 범위 표, 오류 사례다. 평가 전이나 답변 생성 중 모델에게 제공하지 않는다.
source_manifest.json: 원문 파일의 실제 SHA-256, 바이트 수, 문장 ID 목록이다.
templates/: 실제 실행과 주장 검수 기록의 헤더만 있는 빈 CSV다. 현재 데이터 행은 각각 0개다.
정답·오류 사례·검색 범위 표·검수 결과를 모델 입력에 넣지 않는다. ZIP 전체를 통째로 모델에게 첨부하면 정답이 노출될 수 있으므로 필요한 입력 파일만 골라 제공한다.

4. 수동 진행 순서
가. 전체 원문 조건: common_request와 질문 하나 및 sources의 원문 4개를 제공한다. 원문 직접 대조 기준으로 답과 근거를 검수한다.
나. R1 후보 조건: 새 대화 또는 분리된 요청에서 common_request와 같은 질문 하나 및 R1의 해당 질문 후보만 제공한다. 전체 원문이나 R2를 함께 주지 않는다. 이전 전체 원문 답변을 대화 이력에 남기지 않는다.
다. R2 후보 조건: 별도 요청에서 R2의 같은 질문 후보만 제공한다. R1과 R2는 문서 개정판이 아니라 후보 범위 차이다. 원문은 두 회차에서 동일하다.
후보만 제공한 조건에서 답변이 유보되면 후보 기준의 적절한 유보인지 검수한다. 전체 원문에는 답이 있더라도 후보가 부족한 조건에서 금액을 맞히는 것이 정답 기준은 아니다.
Q05처럼 실제 처리기간이 전체 자료에도 미제공인 경우는 R2의 명시적 정보 범위 문장을 확인한다. R1 후보만으로 전체 자료에 해당 규정이 없다고 단정한 답은 따로 표시한다.
라. 실제 API 검색·네이티브 인용을 직접 실행하는 경우: 해당 공급자의 최신 공식 문서와 지원 여부를 별도로 확인한다. 이 수동 후보 JSON은 API 요청 스키마가 아니다. 공급자가 실제 반환한 검색 후보·응답·인용 데이터를 원형으로 보관하고 실제 기록만 templates에 적는다. API별 인용 필드의 의미는 이 묶음에서 정의하지 않는다.
실제 서비스가 돌려준 후보 범위가 R1/R2와 다르면 고정 후보 실습과 실제 검색 실행을 섞어 점수나 성능으로 보고하지 않는다.

5. 주장별 검수
답변의 각 사실 주장을 작게 나누고 실제 주장 ID를 기록한다. 기대답의 Q01-C01 같은 ID는 검수 기준용이며 모델이 같은 ID를 출력할 필요는 없다.
검수 항목은 네 축으로 나눈다. 값 일치: 비율·금액·시각·미제공 항목의 답이 기대 기준과 맞는지 확인한다. 인용문·위치: 문구가 원문에 있고 문서 ID·문장 ID가 실제 위치를 가리키는지 확인한다. 주장 지지: 해당 인용이 바로 옆의 공간·시각·비율·처리기간 주장을 지지하는지 확인한다. 검색 단계 근거 유무: 그 실행에 제공한 후보에 근거가 있었는지와 전체 원문에는 있는지를 따로 기록한다.
금액은 질문의 50,000원과 해당 공간 규정을 연결해 계산식을 확인한다. 원문에 계산 금액이 그대로 있다고 기록하지 않는다.
인용 근거가 그 실행에 제공한 후보에 있었는지 확인한다. 전체 원문의 근거 상태와 후보 내 근거 상태를 따로 적는다.
expected의 essential_sentence_ids는 후보 누락 검산용 핵심 문장이다. 의미상 동일하게 지지하는 다른 원문 조합을 기계적으로 오답 처리하지 않는다.
문구 일치 여부만으로 주장 지지를 통과시키지 않는다. F01부터 F03까지의 문구는 원문에 실제 있지만, 함께 붙인 주장은 틀리거나 근거가 없다.
CSV에 실제 응답을 옮길 때 셀 첫 문자 또는 선행 공백·제어문자 이후 첫 문자가 =, +, -, @이면 수식으로 해석되지 않게 별도 안전 처리한 사본을 사용한다. 원형 응답은 TXT·JSON 등으로 따로 보관한다.

6. 현재 결과 범위
이 ZIP 자체의 JSON 파싱, CSV 행 수·열 수, 원문 문장 ID·문구·SHA-256, 후보 누락 설계, 금액 산술, ZIP CRC 및 최종 ZIP 재회수 파일 해시를 로컬 QA로 확인한다.
그 확인은 실습 자료의 무결성 검사다. 실제 모델 성능, 실제 API 검색 품질, 네이티브 인용 연결 또는 실제 환급 처리를 검증한 것으로 해석하지 않는다.
