НачатьНачать бесплатно

Разбиение по токенам

Разбиение документов с помощью RecursiveCharacterTextSplitter или CharacterTextSplitter удобно и в ряде случаев даёт хорошие результаты. Однако у этого подхода есть один недостаток: в качестве базовой единицы используются символы, а не токены, которые обрабатывает модель.

В этом упражнении вы разобьёте документы с помощью разделителя на основе токенов, чтобы проверить количество токенов в каждом фрагменте и убедиться, что оно не превышает контекстное окно модели. PDF-документ уже загружен в переменную document.

Библиотека tiktoken и все необходимые классы импортированы заранее.

Это упражнение является частью курса

Retrieval Augmented Generation (RAG) с LangChain

Посмотреть курс

Инструкции к упражнению

  • Получите кодировку для модели gpt-4o-mini с помощью tiktoken, чтобы иметь возможность проверить количество токенов в каждом фрагменте.
  • Создайте разделитель текста, который будет делить документ по количеству токенов, используя кодировку encoding модели GPT-4o-Mini.
  • Разбейте PDF-документ, хранящийся в переменной document, на фрагменты с помощью token_splitter.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# 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")
Редактировать и запускать код