Aan de slagGa gratis aan de slag

Splitsen op tokens

Documenten splitsen met RecursiveCharacterTextSplitter of CharacterTextSplitter is handig en kan in sommige gevallen goede prestaties geven, maar er is één nadeel: ze splitsen met karakters als basiseenheid, in plaats van tokens, die door het model worden verwerkt.

In deze oefening ga je documenten splitsen met een token-tekstsplitter, zodat je het aantal tokens in elk fragment kunt controleren en zeker weet dat ze niet boven het contextvenster van het model uitkomen. Een PDF-document is geladen als document.

tiktoken en alle benodigde klassen zijn alvast voor je geïmporteerd.

Deze oefening maakt deel uit van de cursus

Retrieval Augmented Generation (RAG) met LangChain

Cursus bekijken

Oefeninstructies

  • Haal de encoding voor gpt-4o-mini op uit tiktoken, zodat je het aantal tokens per fragment kunt controleren.
  • Maak een tekstsplitter die splitst op basis van het aantal tokens met de GPT-4o-Mini-encoding.
  • Splits de PDF, opgeslagen in document, in fragmenten met token_splitter.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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")
Code bewerken en uitvoeren