# ============================================================
# [실습] Text Splitter (청킹)
#
# 아래 항목을 직접 구현하세요:
#  1) CharacterTextSplitter(separator="\n\n", ...) 의 단일 구분자 분할과
#     RecursiveCharacterTextSplitter(...) 의 다중 구분자 분할로 split_documents 청크 개수를 비교한다.
#  2) RecursiveCharacterTextSplitter.from_tiktoken_encoder(chunk_size=200, chunk_overlap=50) 로
#     실제 토큰 수 기준 splitter 를 만들어 split_documents 로 청킹한다.
#  3) 텍스트 파일을 로드·청킹하고, split_documents 가 원본 metadata(source)를 각 청크에 그대로 물려주는지 확인한다.
# ============================================================

from dotenv import load_dotenv

load_dotenv()  # .env 에서 OPENAI_API_KEY 로드

from langchain_community.document_loaders import TextLoader
from langchain_text_splitters import (
    CharacterTextSplitter,
    RecursiveCharacterTextSplitter,
)

documents = TextLoader("../DATA/nvme.txt", encoding="utf-8").load()

# 1) 여기에 코드를 작성하세요
#    - CharacterTextSplitter(separator="\n\n", chunk_size=500, chunk_overlap=100) 청크 개수
#    - RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=100) 청크 개수 비교

# 2) 여기에 코드를 작성하세요
#    - RecursiveCharacterTextSplitter.from_tiktoken_encoder(chunk_size=200, chunk_overlap=50)

# 3) 여기에 코드를 작성하세요
#    - ../DATA/ssd.txt 로드·청킹 → 첫 청크의 metadata 확인
