Document Indexing 🟡 BETA

Documents in .gbkb folders are indexed automatically. No manual configuration required.

Automatic Triggers

Indexing occurs when:

  • Files added to .gbkb folders
  • Files modified or updated
  • USE KB called for a collection
  • USE WEBSITE registers URLs for crawling

Processing Pipeline

Document → Extract Text → Embed → Store in Qdrant
StageDescription
ExtractPull text from PDF, DOCX, DOC, XLSX, XLS, ODS, PPTX, PPT, ODP, EPUB, ODT, HTML, MD, TXT, CSV, JSON, YAML, TOML, and more
EmbedGenerate one vector per document with the configured embedding model
StoreSave to Qdrant with the file path, type, bucket and tag metadata that retrieval filters on

No chunking stage (September 2026). A document becomes a single record. There is no splitting into segments and no overlap, so precision degrades on long documents. This is a known limitation, not a setting.

Supported File Types

FormatNotes
PDFFull text extraction, OCR for scanned docs
DOCX/DOCMicrosoft Word documents
XLSX/XLS/ODSSpreadsheets (Excel, OpenDocument) — each row indexed
PPTX/PPT/ODPPresentations (PowerPoint, OpenDocument) — slide text extracted
EPUB/ODTE-books and OpenDocument text
TXT/MD/RST/ADOCPlain text, Markdown, reStructuredText, AsciiDoc
HTMLWeb pages (text only)
CSV/TSVTabular data — each row indexed separately
JSON/JSONLStructured data
YAML/TOML/INIConfiguration files
PY/RS/JS/TS/SH/SQLSource code files
CSS/SVGStyle and vector graphics
ICS/VCF/EMLCalendar, contacts, email
LOGLog files
Any text/* MIMECatch-all for any text-based format (max 100MB)

Website Indexing

Schedule regular crawls for web content:

SET SCHEDULE "0 2 * * *"  ' Daily at 2 AM
USE WEBSITE "https://docs.example.com"

Schedule Examples

PatternFrequency
"0 * * * *"Hourly
"*/30 * * * *"Every 30 minutes
"0 0 * * 0"Weekly (Sunday)
"0 0 1 * *"Monthly (1st)

Configuration

The embedding endpoint is part of the bot’s configuration. Two models are supported:

SettingModelDimensions
Local embedding service (default)sentence-transformers/all-MiniLM-L6-v2384
OpenAItext-embedding-3-small1536

Input is truncated to 600 tokens before embedding with the local model. If no embedding endpoint is configured, retrieval degrades to keyword matching, and if embedding generation fails at query time a non-semantic hash vector is substituted — see Retrieval and RAG.

Using Indexed Content

USE KB "documentation"
' All documents now searchable
' LLM uses this knowledge automatically

Troubleshooting

IssueSolution
Documents not foundCheck file is in .gbkb folder, verify USE KB called
Slow indexingLarge PDFs take time; consider splitting documents
Outdated contentSet up scheduled crawls for web content

See Also