Descriere & Utilizare
Calitatea unui sistem RAG depinde direct de modul în care sunt tăiate documentele. În LlamaIndex, bucățile rezultate se numesc Nodes și păstrează legături dublu înlănțuite (fiecare nod știe care este nodul anterior PREVIOUS și nodul următor NEXT din document).
SentenceSplitter este parserul standard: împarte textul în cel mult chunk_size tokeni, dar garantează că nu va tăia niciodată o propoziție în două la jumătatea ei.
Pentru documente complexe, SemanticSplitterNodeParser folosește un algoritm inteligent: calculează similitudinea embedding-urilor între propoziții consecutive și pune punctul de tăiere exact acolo unde autorul schimbă subiectul!
Cum să o reții ușor
💡 În loc să tai un cârnat cu rigla din 10 în 10 centimetri indiferent unde nimerește cuțitul, SemanticSplitter taie exact la legăturile naturale dintre idei.
Opțiuni și parametri tehnici
SentenceSplitterutilizează tokenizatorul modelului curent pentru a număra tokenii, nu caracterele brute.SemanticSplitterNodeParsercalculează distanța cosinus între grupuri de propoziții și taie nodul când distanța depășește pragulbreakpoint_percentile_threshold=95.
Exemple practice și cazuri de utilizare
- Integrare directă la crearea indexului:
index = VectorStoreIndex.from_documents(docs, transformations=[SentenceSplitter(chunk_size=512)]) - Chunking semantic:
splitter = SemanticSplitterNodeParser(buffer_size=1, breakpoint_percentile_threshold=95, embed_model=Settings.embed_model)
Sfaturi de configurare & capcane
Pentru întrebări punctuale (factoid QA), un chunk_size mai mic (256 - 512 tokeni) oferă o precizie a vectorilor mult mai bună decât valoarea implicită de 1024.
Comenzi și ghiduri înrudite
vector-store-index: Resursă asociată din acest modul.global-settings: Resursă asociată din acest modul.reranker-postprocessor: Resursă asociată din acest modul.