ComeçarComece de graça

Dividindo por tokens

Dividir documentos usando RecursiveCharacterTextSplitter ou CharacterTextSplitter é prático e pode trazer bom desempenho em alguns casos, mas tem uma desvantagem: essas classes dividem usando caracteres como unidades básicas, e não tokens, que são o que o modelo processa.

Neste exercício, você vai dividir documentos usando um divisor de texto por tokens, para poder verificar o número de tokens em cada trecho e garantir que eles não excedam a janela de contexto do modelo. Um documento em PDF foi carregado como document.

tiktoken e todas as classes necessárias já foram importados para você.

Este exercício faz parte do curso

Retrieval Augmented Generation (RAG) com LangChain

Ver curso

Instruções do exercício

  • Obtenha a codificação para gpt-4o-mini a partir do tiktoken para poder checar o número de tokens em cada trecho.
  • Crie um divisor de texto para dividir com base no número de tokens usando a encoding do GPT-4o-Mini.
  • Divida o PDF, armazenado em document, em trechos usando token_splitter.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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 e executar o código