LangChain TextLoader: простыя .txt файлы ў об’екты Document
LangChain TextLoader чытае .txt файлы ў дакументы з метаданымі выхіднага кантэнту, без разбівання на часткі, а функцыя autodetect_encoding дапамагае адчыняць файлы у фармаце Shift-JIS і іншыя файлы, якія не ў фармаце UTF-8.
Крыніцы: How to Use TextLoader in LangChain to Load .txt File
У праграме RAG завантажэнне — гэта першы крок. Крыніцы прыходзяць у фармаце .txt, .csv, .pdf, .md і іншых. У гэтай статыце розглядаецца TextLoader — прыстрой завантажэння з LangChain, прызначанный для звычных .txt файлаў.
Прыстрой завантажэння дакументаў чытае крыніцы і ператварае іх у адні чы роўналькі об’екты Document. Document — стандартная ейкавая едыніца зместу ў LangChain. У яго ёсць два поля:
- page_content — сам тэкст
- metadata — слоўнік з інформацыяй пра паводзак (часта толькі шлях)
TextLoader прыемліе шлях, чытае файл і вяртае Documents. Ён не дзельвіць файл, не чыстыць яго, не выканае OCR і не трансфармуе яго. Ён толькі завантажае файлы. Дзельвіць файлы трэба робіць у спецыяльным інструменце для дзельвіцання; чыстку — у прадобрабатчыку. Раздзелэнне на этыя этапы дапамагае лёгкаа змініць кожны з ўскладненняў.
Калі падходзіць TextLoader
- Джэрэлам ёсць просты тэкст:
.txt, лог-файлы, экспортаваныя нотаткі, даны, адзьвечаныя з інтэрнэту - Вы завантажаеце адзін файл або калькі файлаў з аднаковым фарматам тэксту
- Вам патрэбны толькі базовыя метаданы, такія як шлях да файла
- Вы хачаце самыя дашчэвыя можлівыя першыя крокі перад інтэграцыяй
Калі трэба выбраць іншы інструмент
- Сумешаныя фарматы (PDF, DOCX, HTML, CSV) пад час аднае обработкі
- Вам патрэбны номеры сторанак, загалоўкі, назвы аркушаў або метаданы пра автара
- Файл ёсць бінарным або у кантэйнеры і патрабуе спецыялізаванага парсера
Эксперымент: з файла да Дакумента
1. Падготавіце прыкладны файл
Зберажыце тэкст стаціі як Sample.txt у праекце, каб чытальнік мёг знайсці ўсё, што трэба. Падходзіць будзь-які тэкст у фармаце UTF-8; большыя файлы лепей паказваюць прынцып «адзін Дакумент на файл».
2. Створыце чытальнік
Note on Package Location
TextLoader is currently available through langchain_community.document_loaders.
However, LangChain is moving integrations into standalone packages, and this import path may change.
The import shown above works with langchain-community 0.4.2. For new projects, check the current LangChain documentation for the recommended import path.
Стварэнне чытальніка яшчэ не выканае дзейства на дыску. TextLoader проста зберагае шлях (і неабяжны флэгі кодавання), якія вы яму даеце. Такой паслядовы спосаб стварэння ўжыткавы, калі вы створаеце спіс чытальнікаў і запускаеце іх пазней у батч-заданні.
3. Выклікайце .load()
load() чытае файл і вяртае спіс. Кожны чытальнік LangChain вяртае спіс, нават калі ёсць толькі адзін Дакумент. Следуючыя элементы, такія як сапратэры тэкста і базы дадзеных для вектароў, чакаюць самэ такой фармат спіса, таму чытальнікі застаюць адносова стабільныя незалежна ад тыпу файла.
4. Пераканаецеся ў дужыні спіса
Для Sample.txt у співтоварыства ёсць роўна адзін элемент. Файл з простым тэкстам завжды стварае адзін Документ, незалежна ад таго, насколькі вялікі ён. Разламы ліній і абзацы не ствараюць дадатковых Документаў — весь файл ёсць адным блакам page_content. Калі вам патрэбны меншыя елементы, дадаць трэба срэдство для роздзелення тэксту пасля завантажэння.
5. Аналіз Документа
docs[0] — гэта Документ. У page_content зберагаецца весь тэкст. metadata зазвычай містыць толькі source (шлях). TextLoader не стварае заглавяў, автараў чы дат. Калі вам патрэбны болей развітыя метаданы, ўжо пасля завантажэння трэба яны дадаць самім аднойчы, ці выбраць срэдство для завантажэння, якое выкарыстоўвае структуру.
Параметры канстрактара
TextLoader(file_path, encoding=None, autodetect_encoding=False)
- file_path — шлях да файла з расшырэнням
.txt - encoding — конкрэтны кодак для чытання (UTF-8, latin-1, …)
Проблемы з кодаваннем у сумешаных корпусах
Калі не указваць кодаванне, TextLoader выкарыстоўвае стандартную наявную на платформе настройку (зазвычай UTF-8). Файл Sample.txt у фармаце UTF-8 чыста завантажваецца без дадатковых настройкаў.
Створыце файл sample2.txt, які будзе захаваны ў фармаце Shift-JIS, з калькама рэчы на японскай мове:
今日は良い天気です。
私は毎日プログラミングを勉強しています。
Pythonを使って新しいアプリを作っています。
Завантажэнне без параметра кодавання не ўдаецца — дэкодаваннер UTF-8 не можа обрабатваць байты фармата Shift-JIS. Неабяжна паслаць параметр autodetect_encoding=True. TextLoader выкарыстоўвае chardet, каб запаздала выканаліць адгукаванне коду пасля невыйска спробы UTF-8, а потым практыкуецца знова з гаданым кодам. Гэта мае значэнне праз прыйом файлаў з сумешаных або невядомых выхадных джэрэл, дзе адна неправільная настройка кодавання можа зупініць весь працэс апрацоўкі.
Падсумак
TextLoader — гэта самы ўжоценны ладэр для простага тэксту ў LangChain RAG: пацок увайшліва, спіс дакументаў выходна, мінімальныя метаданы, неабавязковая аўтадэтэкція кодування, калі ваш корпус неўпорадкованы. Ожывайце яго, калі файл вялікі ўжо ў фармаце тэксту; перайдзіце да болей змогучых ладэроў, калі патрабуецца структура чы бінарныя фарматы.