시작하기무료로 시작하기

토큰 기준으로 분할하기

RecursiveCharacterTextSplitter 또는 CharacterTextSplitter로 문서를 나누는 방법은 간편하고, 경우에 따라서는 성능도 좋습니다. 하지만 한 가지 단점이 있어요. 이들은 모델이 처리하는 단위인 토큰이 아니라 문자 단위를 기준으로 분할합니다.

이번 연습에서는 토큰 텍스트 스플리터를 사용해 문서를 분할해 보겠습니다. 각 청크의 토큰 수를 확인해, 모델의 컨텍스트 윈도우를 넘지 않도록 보장할 수 있어요. PDF 문서는 document로 로드되어 있습니다.

tiktoken과 필요한 모든 클래스는 이미 임포트되어 있어요.

이 연습은 강의의 일부입니다

LangChain을 활용한 RAG(검색 증강 생성)

강의 보기

연습 안내

  • 각 청크의 토큰 수를 확인할 수 있도록 tiktoken에서 gpt-4o-mini의 인코딩을 가져오세요.
  • GPT-4o-Mini의 encoding을 사용해 토큰 수를 기준으로 분할하는 텍스트 스플리터를 만드세요.
  • document에 저장된 PDF를 token_splitter로 청크 단위로 분할하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Get the encoding for gpt-4o-mini
encoding = ____

# Create a token text splitter
token_splitter = ____(encoding_name=____, chunk_size=100, chunk_overlap=10)

# Split the PDF into chunks
chunks = ____

for i, chunk in enumerate(chunks[:3]):
    print(f"Chunk {i+1}:\nNo. tokens: {len(encoding.encode(chunk.page_content))}\n{chunk}\n")
코드 편집 및 실행