2장 문제: 문서 처리와 RAG
공식 범위를 참고한 자체 제작 연습문제입니다. 공통 시험 유형을 연습하며 AI-103의 실제 문항 구성·난이도를 재현하지 않습니다. 공식 연습 평가 안내 (로그인 필요) · 공식 모듈 샘플 · 공식 시험 화면 체험
12문항 · 기록 불러오는 중
2.1 문서에서 정보 추출하기
송장의 수량·합계 추출이 틀렸습니다. 보존할 구조와 검증은?
송장 p1: 품목 | 수량 | 단가 볼트 | 2 | 300 너트 | 3 | 100 합계 | | 900 평탄 OCR: "볼트 너트 2 3 300 100 900" 앱 추출: 볼트 수량=3, 합계=900
- 합계 900이 맞으므로 품목별 수량도 통과 처리한다
- 표의 행·열·위치를 보존하고 품목별 계산을 대조한다
- OCR 문자열을 더 길게 합치고 열 이름은 제거한다
- 숫자를 크기순으로 정렬하고 품목 순서에 배정한다
풀이 기록 기능을 불러오는 중…
해설 보기
정답: B. 표의 행·열·위치를 보존하고 품목별 계산을 대조한다
합계가 맞아도 볼트 수량 3은 원문의 2와 다릅니다. 행·열 관계와 위치를 보존하고 품목 수량·단가 및 총합을 각각 검증해야 합니다.
문서 추출 결과를 검색 근거로 색인합니다. 제시된 두 요구를 만족하려면 보존할 정보 두 가지는?
분석 결과:
doc_id=D9 / page=3 / field=total / value=900
quote="합계 900" / access_group=finance
현재 색인 문서:
{"body":"합계 900"}
요구: 재무팀만 조회, 답변에서 원문 페이지로 이동- 색인 본문만 보존하고 원문 위치는 모델이 추정하도록 한다
- 원문 문서 ID·페이지·필드 근거를 검색 결과에 연결한다
- 재무팀 제한을 없애고 모든 사용자의 검색 결과를 통일한다
- 접근 그룹 메타데이터를 보존하고 인증 사용자에 맞게 필터링한다
풀이 기록 기능을 불러오는 중…
해설 보기
정답: B. 원문 문서 ID·페이지·필드 근거를 검색 결과에 연결한다 / D. 접근 그룹 메타데이터를 보존하고 인증 사용자에 맞게 필터링한다
원문으로 이동하려면 문서·페이지 등 출처 연결이 필요하고, 재무팀만 조회하려면 권한 메타데이터와 검색 시 접근 검사가 필요합니다. 본문 텍스트만 저장하면 두 요구를 충족할 수 없습니다.
두 소비자의 요구에 맞게 Content Understanding 결과의 전달 형식을 각각 선택하세요.
소비자 A: 송장 합계·통화의 타입과 필수 필드 검사 소비자 B: 문단·표 맥락을 검색해 답변하고 원문 인용 CU 결과: 구조화 fields + 문서 Markdown + 원문 위치 현재 변환: fields를 버리고 Markdown만 전달 A 오류: total 필드 없음 / B: 문맥 검색 가능
- Markdown과 출처
- 타입 있는 필드
- 필드 삭제
- 출처 없는 요약
풀이 기록 기능을 불러오는 중…
해설 보기
정답: 소비자 A — 합계·통화 필드의 타입 검사: 타입 있는 구조화 필드 전달 / 소비자 B — 문맥 검색과 원문 인용: 문맥을 보존한 Markdown과 원문 위치 연결
A에는 타입 검사 가능한 구조화 필드를, B에는 문단·표 문맥을 보존한 표현과 원문 위치를 전달합니다. 하나의 출력 표현이 두 소비자의 서로 다른 계약을 자동으로 충족한다고 가정하지 않습니다.
시험 범위와 실행 문서가 다를 때 학습·실습 계획은?
범위 메모: CU pro mode 항목 포함 현재 확인한 공식 문서: pro API 종료, agentic mode 이전 안내 새 실습 조건: 2026-06-01-preview / 단일 입력 파일 기존 실습: pro API로 파일 3개를 한 번에 제출 요구: 범위 용어 설명 + 현재 실행 가능한 실습
- 범위 메모를 기준으로 기존 pro 호출의 실행 성공을 가정한다
- 새 모드 이름만 바꾸고 세 파일 요청 구조를 유지한다
- 새 모드가 있으므로 해당 시험 범위 항목을 학습에서 삭제한다
- 범위 용어와 현재 지원을 구분하고 새 제약에 맞춰 검증한다
풀이 기록 기능을 불러오는 중…
해설 보기
정답: D. 범위 용어와 현재 지원을 구분하고 새 제약에 맞춰 검증한다
범위 메모를 현재 API 지원과 동일시할 수 없습니다. 용어 대응을 남기고 현재 문서의 버전·입력 제약에 맞는 실습을 따로 검증해야 합니다.
2.2 검색 데이터 만들기
새 문서만 검색되지 않습니다. 처음 불일치가 보이는 단계는?
source D12: text="부품 Z17 교체 주기 6개월" extract D12: content="부품 Z17 교체 주기 6개월" mapping: index.body ← source.description source.description: null indexed D12: body=null / title="정비 문서" query="Z17 교체" → hits=[]
- 원문과 추출 결과 사이의 OCR 인식 설정을 수정한다
- 색인과 검색 결과 사이의 벡터 재정렬 설정을 수정한다
- 추출 결과와 색인 본문 사이의 필드 매핑을 수정한다
- 검색 결과와 생성 입력 사이의 문맥 조립을 수정한다
풀이 기록 기능을 불러오는 중…
해설 보기
정답: C. 추출 결과와 색인 본문 사이의 필드 매핑을 수정한다
추출 content는 있지만 매핑이 비어 있는 description을 가리켜 indexed body가 null입니다. 검색·생성 이전의 필드 전달 문제를 먼저 고칩니다.
수집 후 회의 녹음만 검색되지 않습니다. 최소한의 수집 경로 수정은?
수집기 경로: text/* → 텍스트 추출 → 청크 → 색인 application/pdf → 문서 분석 → 청크 → 색인 audio/wav → 파일명 청크 → 색인 sample audio: "Z17 납기는 금요일" / indexed="meeting.wav" 출처·접근 권한 필드: 보존됨
- 음성을 전사하고 시간·출처를 연결해 본문을 색인한다
- 파일명 청크를 더 잘게 나눠 벡터 수를 늘려 색인한다
- PDF 분석 결과와 녹음 파일명을 합쳐 하나로 색인한다
- 검색 결과 수를 늘리고 파일명의 재정렬을 조정한다
풀이 기록 기능을 불러오는 중…
해설 보기
정답: A. 음성을 전사하고 시간·출처를 연결해 본문을 색인한다
색인된 것은 파일명뿐이어서 녹음 내용의 Z17·금요일을 검색할 근거가 없습니다. 형식에 맞는 전사 경로를 추가해야 합니다.
표의 행 관계가 사라져 답이 바뀌었습니다. 보강 표현의 수정은?
원문 표 p4: 부품 | 온도 상한 A17 | 80도 B20 | 120도 현재 청크: "A17 B20 80도 120도" 검색 답변: A17은 120도까지 가능
- 현재 문자열의 청크 길이를 줄여 단어별로 분리한다
- 현재 문자열의 벡터 차원을 높여 다시 임베딩한다
- 열 이름과 행 관계·페이지를 보존해 다시 청크화한다
- 현재 답변에 표 출처 링크를 붙여 근거성을 보완한다
풀이 기록 기능을 불러오는 중…
해설 보기
정답: C. 열 이름과 행 관계·페이지를 보존해 다시 청크화한다
평탄화된 문자열에서 부품과 온도의 대응이 사라졌습니다. A17↔80도 관계와 원문 위치를 보존해야 답변을 검증할 수 있습니다.
검색 결과가 없다는 신고만 받았습니다. 지금 가능한 판단은?
query="스캔 매뉴얼의 교체 주기" / hits=[] 원문 파일: 제공되지 않음 추출 로그: 제공되지 않음 색인 문서·필드: 제공되지 않음 질의 필터: 제공되지 않음
- 스캔 문서이므로 OCR 누락으로 확정하고 추출만 재실행한다
- 빈 결과이므로 벡터 설정 오류로 확정하고 모델을 교체한다
- 주기가 없으므로 원문 정보 부족으로 확정하고 답변을 종료한다
- 원문·추출·색인·질의 기록을 요청하고 원인 확정은 보류한다
풀이 기록 기능을 불러오는 중…
해설 보기
정답: D. 원문·추출·색인·질의 기록을 요청하고 원인 확정은 보류한다
빈 검색 결과만으로 OCR·색인·필터 중 어디서 누락됐는지 구분할 수 없습니다. 같은 문서와 요청의 단계별 기록이 먼저 필요합니다.
2.3 검색 결과로 답변하기
두 유형의 검색 질의를 같은 정답 문서 기준으로 평가했습니다. 다음 실험은?
정답 문서가 상위 5개 안에 든 비율
부품번호 질의 의미 기반 질의
키워드 검색 96% 54%
벡터 검색 63% 90%
요구: 각 유형 90% 이상 / 응답 p95 500ms 이하
hybrid 측정값: 없음- 키워드를 채택하고 의미 질의의 가중치를 낮춘다
- 벡터를 채택하고 부품번호 질의의 가중치를 낮춘다
- hybrid를 두 유형으로 나눠 품질과 지연을 측정한다
- hybrid를 채택하고 기존 두 점수의 최댓값을 쓴다
풀이 기록 기능을 불러오는 중…
해설 보기
정답: C. hybrid를 두 유형으로 나눠 품질과 지연을 측정한다
두 검색 방식의 약점이 서로 다르므로 결합을 평가할 근거가 있습니다. 결합의 실제 통과 여부는 아직 측정하지 않았습니다.
답변은 전달된 문서를 정확히 인용했습니다. 처음 수정할 단계는?
request=R31 / query_date=2026-10-24 source: P2 / effective_from=2026-10-01 / 반품 14일 index: P1 / expired=2026-09-30 / 반품 30일 retrieved=P1 / model_input=P1 answer: 반품은 30일입니다. [P1]
- 생성 지침을 강화하고 인용 형식을 확인한다
- 수집·색인을 갱신하고 적용일 필터를 확인한다
- 재정렬을 조정하고 기존 색인의 순위를 확인한다
- 대화 기억을 비우고 같은 검색 결과를 사용한다
풀이 기록 기능을 불러오는 중…
해설 보기
정답: B. 수집·색인을 갱신하고 적용일 필터를 확인한다
현재 원문 P2가 색인에 없고 만료된 P1이 전달됐습니다. 답변과 근거가 일치해도 현재 정책의 정답은 아닙니다.
다음 Azure AI Search 코드가 요청하는 검색 방식과 후속 처리를 각각 선택하세요.
results = search_client.search(
search_text="고온용 패킹",
vector_queries=[vector_query],
query_type="semantic",
semantic_configuration_name="manuals",
)
# 결과 목록과 최종 생성 답변은 기록하지 않음- 키워드 검색
- 벡터 검색
- 하이브리드 검색
- 의미 재순위화
풀이 기록 기능을 불러오는 중…
해설 보기
정답: 검색 방식: 키워드와 벡터를 결합한 하이브리드 검색 / query_type="semantic"의 역할: 검색 결과의 의미 재순위화
search_text와 vector_queries를 함께 제공하므로 하이브리드 검색이며 query_type="semantic"은 의미 재순위화를 요청합니다. 검색 결과를 얻는 것과 생성 답변의 근거성을 검증하는 것은 별개입니다.
빈 검색 결과가 나온 뒤 모델이 금액을 만들어 답했습니다. 도구 계약의 최소 수정은?
knowledge_tool result:
{"status":"ok","score":0.0}
검색 내부 기록: hits=[] / error=null
agent answer: 출장비는 8만원입니다.
업무 규칙: 근거가 없으면 금액 답변 보류- 빈 결과 상태와 문맥·출처를 반환하도록 바꾼다
- 검색 점수 하한과 출력 토큰 수를 높인다
- 반환 문구에 보류 지침을 넣고 상태는 유지한다
- 오류 재시도 횟수와 검색 시간 제한을 늘린다
풀이 기록 기능을 불러오는 중…
해설 보기
정답: A. 빈 결과 상태와 문맥·출처를 반환하도록 바꾼다
점수와 ok만으로는 사용할 근거가 있는지 알기 어렵습니다. 빈 결과를 명시하고 근거가 있는 경우 문맥·출처를 전달해야 합니다.