RAG2026-5일6차시 · 문서 로딩 실습16 / 19← 이전목차다음 →MetaContents

6차시. 문서 로딩 실습

퀴즈 1 — 쪽 번호가 붙은 Document 딕셔너리 만들기

페이지 번호가 있는 Document 딕셔너리를 만드세요.

빈칸 코드에서 시작합니다.

Python
def pdf_page(text, page):
    pass
결과 보기 (예시 풀이)
Python
# 퀴즈 1. 페이지 번호가 있는 Document 딕셔너리 만들기
# LangChain의 Document 대신, 같은 두 칸(page_content, metadata)을 딕셔너리로 흉내 냅니다.

def pdf_page(text, page):
    # 본문은 page_content 칸에, 쪽 번호는 metadata 안의 page 칸에 넣습니다.
    # metadata를 딕셔너리로 두어야 나중에 filename 같은 꼬리표를 더 붙일 수 있습니다.
    return {"page_content": text, "metadata": {"page": page}}

# 가짜 PDF 두 쪽을 만들어 봅니다. PDF처럼 쪽 번호는 0부터 셉니다.
pages = ["1. 환불 규정\n7일 이내에 환불을 신청하실 수 있습니다.",
         "2. 교환 규정\n상품 불량은 30일 이내에 교환이 가능합니다."]

docs = []
for i, text in enumerate(pages):
    docs.append(pdf_page(text, i))

# 확인 1: 쪽마다 하나씩, 모두 2개가 만들어졌는지
print("문서 개수:", len(docs))

# 확인 2: metadata에 page가 들어 있는지
print("첫 문서 metadata:", docs[0]["metadata"])

# 확인 3: 사람에게 보여 줄 쪽 번호는 page + 1
for d in docs:
    first_line = d["page_content"].split("\n")[0]
    print(f"{d['metadata']['page'] + 1}쪽: {first_line}")

실행 결과

출력
문서 개수: 2
첫 문서 metadata: {'page': 0}
1쪽: 1. 환불 규정
2쪽: 2. 교환 규정

채점 기준: metadata['page']가 있어야 한다.

관련 교안: 6차시 「2. Document 객체 — 모든 것의 기본 단위」

← 이전 절6차시 · 실습 1 — 문서 로딩 실습 실습 따라 하기다음 절 →6차시 · 퀴즈 2 — 본문이 너무 짧은 페이지 골라내기