Dela upp efter tokens
Att dela upp dokument med RecursiveCharacterTextSplitter eller CharacterTextSplitter är praktiskt och kan ge bra resultat i vissa fall, men det finns en nackdel: de delar upp text med tecken som basenhet, inte tokens, som är det modellen faktiskt bearbetar.
I den här övningen delar du upp dokument med en tokenbaserad textdelare, så att du kan kontrollera antalet tokens i varje del och säkerställa att de inte överskrider modellens kontextfönster. Ett PDF-dokument har laddats in som document.
tiktoken och alla nödvändiga klasser har redan importerats åt dig.
Den här övningen är en del av kursen
Retrieval Augmented Generation (RAG) med LangChain
Övningsinstruktioner
- Hämta kodningen för
gpt-4o-minifråntiktokenså att du kan kontrollera antalet tokens i varje del. - Skapa en textdelare som delar upp text baserat på antal tokens med hjälp av GPT-4o-Mini
encoding. - Dela upp PDF-filen, lagrad i
document, i delar med hjälp avtoken_splitter.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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")