Розбиття за токенами
Використовувати 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")