| title | RAG Chunk Parameters 800 Characters and 100 Overlap | |||
|---|---|---|---|---|
| domain | rag | |||
| source | bootstrap | |||
| status | published | |||
| tags |
|
|||
| language | en | |||
| created | 2026-05-03 | |||
| domain_expert | bootstrap | |||
| verified_date | 2026-05-03 | |||
| subdomain | chunking |
After importing FANUC PDF documents into RAG, retrieval quality was unstable and recall was low for long documents.
Inspect the RAG config, ingestion log, retrieval log, and cache status to confirm the exact mismatch before applying the fix.
The chunking strategy was inappropriate. Chunks that are too large (>2000 characters) contain multiple topics and become semantically blurry; chunks that are too small (<200 characters) lack context and produce embeddings with low discriminative power.
Use the following chunking parameters:
RecursiveCharacterTextSplitter(
chunk_size=800, # About 800 characters per chunk
chunk_overlap=100, # 100-character overlap between chunks
length_function=len,
separators=["\n\n", "\n", "。", "!", "?", " ", ""]
)Keep at most 100 chunks per file, truncating anything beyond that to prevent oversized documents from filling the vector store.
In a comparison test across 50 documents, retrieval accuracy improved by about 15% after chunking. A single 800-character chunk covers one technical point well, such as the complete description of an alarm code.
# Expected result: retrieval logs show the intended chunks and no stale cache or fallback errors.
python3 search_knowledge.py "rag verification smoke test" --lessonsEnvironment: Linux / WSL with Python 3.10 or newer; adapt the query to the affected RAG corpus.
Mixed Chinese/English technical documents (FANUC manuals), especially PDF / Word documents with clear paragraph structure.