Разбивка по символам
Один из ключевых этапов реализации Retrieval Augmented Generation (RAG) — разбивка документов на фрагменты для хранения в векторной базе данных.
В LangChain доступно несколько стратегий разбивки, некоторые из них реализуют более сложные алгоритмы. В этом упражнении вы реализуете разбивку текста по символам: документы разделяются по заданному символу, а длина фрагмента измеряется в количестве символов.
Помните, что универсальной стратегии разбивки не существует — возможно, потребуется поэкспериментировать с несколькими вариантами, чтобы выбрать подходящий для вашей задачи.
Это упражнение является частью курса
Разработка LLM-приложений с помощью LangChain
Инструкции к упражнению
- Импортируйте класс
CharacterTextSplitterизlangchain_text_splitters. - Создайте экземпляр
CharacterTextSplitterс параметрамиseparator="\n",chunk_size=24иchunk_overlap=10. - Используйте метод
.split_text(), чтобы разбить строкуquote, а затем выведите полученные фрагменты и их длины.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Import the character splitter
from langchain_text_splitters import ____
quote = 'Words are flowing out like endless rain into a paper cup,\nthey slither while they pass,\nthey slip away across the universe.'
chunk_size = 24
chunk_overlap = 10
# Create an instance of the splitter class
splitter = CharacterTextSplitter(
separator=____,
chunk_size=____,
chunk_overlap=____)
# Split the string and print the chunks
docs = splitter.____(quote)
print(docs)
print([len(doc) for doc in docs])