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
Oefeninstructies
- Haal de encoding voor
gpt-4o-miniop uittiktoken, 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 mettoken_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")