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

Рекурсивное разбиение документов

Разбиение по одному символу — простой и предсказуемый подход, однако зачастую он даёт неоптимальные фрагменты. В этом упражнении вы применёте рекурсивное разбиение к статье Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks, которую загрузили в одном из предыдущих упражнений.

Напомним: рекурсивное разбиение по символам перебирает список символов и последовательно пробует каждый из них, чтобы получить фрагменты, не превышающие лимит chunk_size.

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

Retrieval Augmented Generation (RAG) с LangChain

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

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

  • Определите рекурсивный сплиттер текста LangChain, который будет рекурсивно перебирать список символов ['\n', '.', ' ', ''] с размером фрагмента 75 и перекрытием 10.
  • Разбейте document с помощью определённого вами text_splitter, используя подходящий метод.

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

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

loader = PyPDFLoader("rag_paper.pdf")
document = loader.load()

# Define a text splitter that splits recursively through the character list
text_splitter = ____(
    ____,
    chunk_size=75,  
    chunk_overlap=10  
)

# Split the document using text_splitter
chunks = text_splitter.____
print(chunks)
print([len(chunk.page_content) for chunk in chunks])
Редактировать и запускать код