CommencerCommencer gratuitement

Découper par tokens

Découper des documents avec RecursiveCharacterTextSplitter ou CharacterTextSplitter est pratique et peut offrir de bonnes performances dans certains cas, mais cela présente un inconvénient : ces méthodes découpent sur la base des caractères, et non des tokens, qui sont ceux traités par le modèle.

Dans cet exercice, vous allez découper des documents avec un séparateur basé sur les tokens afin de pouvoir vérifier le nombre de tokens de chaque segment et vous assurer qu’il ne dépasse pas la fenêtre de contexte du modèle. Un document PDF a été chargé dans document.

tiktoken et toutes les classes nécessaires ont été importés pour vous.

Cet exercice fait partie du cours

Retrieval Augmented Generation (RAG) avec LangChain

Afficher le cours

Instructions

  • Récupérez l’encodage de gpt-4o-mini via tiktoken afin de pouvoir vérifier le nombre de tokens de chaque segment.
  • Créez un séparateur de texte pour découper selon le nombre de tokens en utilisant l’encoding de GPT-4o-Mini.
  • Découpez le PDF, stocké dans document, en segments à l’aide de token_splitter.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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")
Modifier et exécuter le code