6차시. 문서 로딩 실습
퀴즈 1 — 쪽 번호가 붙은 Document 딕셔너리 만들기
페이지 번호가 있는 Document 딕셔너리를 만드세요.
빈칸 코드에서 시작합니다.
def pdf_page(text, page):
pass결과 보기 (예시 풀이)
# 퀴즈 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']가 있어야 한다.