Text Splitter alege unitatea de măsură: character (implicit, RecursiveCharacterTextSplitter), token (tokeni numărați cu Tiktoken) sau token_transformers (tokenizerul Hugging Face din RAG_TOKENIZER_MODEL, ca limitele fragmentelor să urmeze tokenizerul modelului de embeddings; indisponibil pe :slim). Chunk Size este mărimea maximă a unui fragment, iar Chunk Overlap cât text se repetă între două fragmente vecine.
Markdown Header Text Splitter, activ implicit, taie întâi după titlurile Markdown (H1–H6) și abia apoi aplică splitterul ales, ca secțiunile să rămână împreună. Rezultă uneori fragmente foarte mici (un titlu singur, o intrare de cuprins); Chunk Min Size Target (implicit 0, adică oprit) le lipește de fragmentele următoare cât timp suma nu depășește Chunk Size și fragmentele vin din același document.
Top K (implicit 3) este numărul de fragmente luate din fiecare bază sau fișier atașat, la fiecare căutare. Cu căutarea hibridă activă, ele sunt candidații pe care rerankerul îi reduce la Top K Reranker. Uneltele native ale modelului (query_knowledge_files) folosesc propriul argument count (implicit 5), nu Top K. Setările noi se aplică fișierelor încărcate de acum înainte; bazele Knowledge existente își păstrează fragmentarea până la Reindex, iar fișierele din chat trebuie reîncărcate.
Concepte cheie și caracteristici
| Concept / Parametru | Descriere practică |
|---|---|
CHUNK_SIZE |
Mărimea maximă a fragmentului, în caractere sau tokeni după splitter; implicit 1000. |
CHUNK_OVERLAP |
Suprapunerea dintre fragmente vecine; implicit 100. |
RAG_TEXT_SPLITTER |
character (implicit), token, token_transformers. |
RAG_TOKENIZER_MODEL |
Tokenizerul Hugging Face pentru token_transformers (de exemplu bert-base-uncased). |
ENABLE_MARKDOWN_HEADER_TEXT_SPLITTER |
Implicit True: împarte întâi după titluri. |
CHUNK_MIN_SIZE_TARGET |
Implicit 0; peste 0, unește fragmentele mai mici decât valoarea cu cele următoare. |
RAG_TOP_K |
Fragmente pe căutare, din fiecare bază sau fișier; implicit 3. |
Reindex |
Refragmentează bazele Knowledge din textul extras inițial (nu redeschide fișierul original). |
Exemple practice și scenarii reale
Exemplul 1: Valorile implicite, scrise explicit
-e CHUNK_SIZE=1000 \
-e CHUNK_OVERLAP=100 \
-e RAG_TOP_K=3
Exemplul 2: Documente Markdown cu multe secțiuni scurte
Raportul 1000 / 2000 este exemplul din documentație pentru Chunk Min Size Target.
-e CHUNK_SIZE=2000 \
-e CHUNK_MIN_SIZE_TARGET=1000
Exemplul 3: Fragmente măsurate în tokeni
Cu splitterul token, CHUNK_SIZE și CHUNK_OVERLAP se numără în tokeni, nu în caractere.
-e RAG_TEXT_SPLITTER=token \
-e CHUNK_SIZE=500 \
-e CHUNK_OVERLAP=50
Greșeli frecvente și capcane
- Mărești Top K fără să mărești contextul modelului: cu Ollama la 4096 tokeni, fragmentele în plus pot fi tăiate.
- Schimbi Chunk Size și te aștepți ca bazele existente să se schimbe singure. Rulezi Reindex; fișierele încărcate direct în chat le reîncarci.
- Schimbi motorul de extragere și apeși Reindex: reindexarea lucrează pe textul extras deja, deci fișierele trebuie reîncărcate ca să fie reparsate.