Dividir por tokens
Dividir documentos con RecursiveCharacterTextSplitter o CharacterTextSplitter es práctico y puede darte buen rendimiento en algunos casos, pero tiene un inconveniente: dividen usando caracteres como unidades base, en lugar de tokens, que son los que procesa el modelo.
En este ejercicio, vas a dividir documentos usando un separador basado en tokens para poder comprobar el número de tokens en cada fragmento y asegurarte de que no superan la ventana de contexto del modelo. Se ha cargado un documento PDF como document.
tiktoken y todas las clases necesarias ya se han importado por ti.
Este ejercicio forma parte del curso
Retrieval Augmented Generation (RAG) con LangChain
Instrucciones del ejercicio
- Obtén la codificación para
gpt-4o-minidesdetiktokenpara poder comprobar el número de tokens en cada fragmento. - Crea un separador de texto que divida según el número de tokens usando la
encodingde GPT-4o-Mini. - Divide el PDF, almacenado en
document, en fragmentos usandotoken_splitter.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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")