Zacznij terazZacznij za darmo

Podział według tokenów

Podział dokumentów za pomocą RecursiveCharacterTextSplitter lub CharacterTextSplitter jest wygodny i w niektórych przypadkach daje dobre wyniki, ma jednak jedną wadę: jako jednostki podziału używa znaków, a nie tokenów przetwarzanych przez model.

W tym ćwiczeniu podzielisz dokumenty przy użyciu splittera opartego na tokenach, dzięki czemu będziesz mógł zweryfikować liczbę tokenów w każdym fragmencie i upewnić się, że nie przekracza ona okna kontekstowego modelu. Dokument PDF został wczytany jako document.

Biblioteka tiktoken oraz wszystkie niezbędne klasy zostały już zaimportowane.

To ćwiczenie jest częścią kursu

Retrieval Augmented Generation (RAG) z LangChain

Zobacz kurs

Instrukcje do ćwiczenia

  • Pobierz kodowanie dla modelu gpt-4o-mini z biblioteki tiktoken, aby móc sprawdzić liczbę tokenów w każdym fragmencie.
  • Utwórz splitter tekstu, który będzie dzielić dokumenty na podstawie liczby tokenów, korzystając z kodowania encoding modelu GPT-4o-Mini.
  • Podziel dokument PDF zapisany w zmiennej document na fragmenty przy użyciu token_splitter.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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")
Edytuj i uruchom kod