Descriere & Utilizare
Pentru a construi un sistem RAG (Retrieval-Augmented Generation) peste documentele companiei tale, trebuie mai întâi să le aduci într-un format standardizat. Document Loaders (cum sunt PyPDFLoader, WebBaseLoader, CSVLoader) citesc sursele de date și returnează o listă de obiecte Document(page_content='...', metadata={'source': '...', 'page': 1}).
Deoarece un manual de 300 de pagini nu trebuie trimis integral la fiecare întrebare, intervine RecursiveCharacterTextSplitter — cel mai recomandat divizor de text din LangChain.
Acesta împarte documentele în bucăți de dimensiune fixă (chunk_size), încercând să taie textul în mod inteligent la sfârșit de paragraf (\n\n), apoi la linie nouă (\n) și abia în ultimă instanță la spațiu, păstrând o zonă de suprapunere (chunk_overlap) pentru a nu pierde contextul dintre două fragmente vecine.
Cum să o reții ușor
💡 Ca împărțirea unei enciclopedii groase în fișe de bibliotecă individuale: nu tai pagina cu foarfeca la mijlocul unei propoziții, ci decupezi la final de paragraf și copiezi ultimele două rânduri pe fișa următoare ca să păstrezi firul ideii.
Opțiuni și parametri tehnici
- Loaderul parsează fișierul binar sau pagina HTML și atașează automat metadate de proveniență.
- Splitterul aplică recursiv lista de separatori
['\n\n', '\n', ' ', '']până când fiecare fragment scade sub pragulchunk_size. - Metadatele documentului părinte sunt copiate fidel pe fiecare fragment copil rezultat.
Exemple practice și cazuri de utilizare
- Încărcare pagină web:
loader = WebBaseLoader('https://exemplu.ro/articol'); docs = loader.load() - Configurație optimă RAG general:
RecursiveCharacterTextSplitter(chunk_size=800, chunk_overlap=150)
Sfaturi de configurare & capcane
Setează întotdeauna un chunk_overlap de aproximativ 15-20% din chunk_size (ex: 150-200 caractere la un chunk de 1000). Fără overlap, o informație aflată chiar pe granița de tăiere va fi trunchiată și imposibil de găsit.
Comenzi și ghiduri înrudite
vectorstores-retriever: Resursă asociată din acest modul.runnable-passthrough-parallel: Resursă asociată din acest modul.chat-prompt-template: Resursă asociată din acest modul.