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
Instrukcje do ćwiczenia
- Pobierz kodowanie dla modelu
gpt-4o-miniz bibliotekitiktoken, 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
encodingmodelu GPT-4o-Mini. - Podziel dokument PDF zapisany w zmiennej
documentna fragmenty przy użyciutoken_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")