ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Obtén la codificación para gpt-4o-mini desde tiktoken para 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 encoding de GPT-4o-Mini.
  • Divide el PDF, almacenado en document, en fragmentos usando token_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")
Editar y ejecutar código