IniziaInizia gratis

Suddividere per token

Suddividere i documenti con RecursiveCharacterTextSplitter o CharacterTextSplitter è pratico e in alcuni casi offre buone prestazioni, ma ha un limite: la suddivisione avviene per caratteri come unità di base, mentre il modello elabora i token.

In questo esercizio, suddividerai i documenti usando un token text splitter, così potrai verificare il numero di token in ogni blocco ed evitare di superare la context window del modello. È stato caricato un documento PDF come document.

tiktoken e tutte le classi necessarie sono già state importate per te.

Questo esercizio fa parte del corso

Retrieval Augmented Generation (RAG) con LangChain

Visualizza il corso

Istruzioni dell'esercizio

  • Ottieni da tiktoken l'encoding per gpt-4o-mini così da poter controllare il numero di token in ogni blocco.
  • Crea un text splitter che suddivida in base al numero di token usando l'encoding di GPT-4o-Mini.
  • Suddividi il PDF, salvato in document, in blocchi usando token_splitter.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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")
Modifica ed esegui il codice