The minimum
Set these in your.env and you’re ready to call Khora():
Things you’ll probably want to change next
Generation model
KHORA_LLM_MODEL (default gpt-4o-mini) picks the model used for extraction and generation. Any litellm-supported provider works. Set KHORA_LLM_API_KEY_ENV to point at the matching env var.
Embedding model
KHORA_LLM_EMBEDDING_MODEL (default text-embedding-3-small) controls embeddings. Changing the model usually means changing KHORA_LLM_EMBEDDING_DIMENSION to match. That requires a fresh schema, since vector columns are dimension-typed.
Storage backend
KHORA_STORAGE_BACKEND defaults to postgres. For demos or single-user CLIs, switch to the embedded SQLite + LanceDB stack:
postgres. See the embedded backends notes for the scale ceiling and known gaps.
Retrieval mode
KHORA_QUERY_DEFAULT_MODE defaults to hybrid (vector, graph, and keyword fused). To force a single channel:
vector, graph, hybrid, all.
Programmatic alternative
If env vars aren’t your style, pass aKhoraConfig directly:
Next steps
tune
Full Configuration
Every
KHORA_* knob with defaults and tuning guidance.database
Storage backends
Postgres + Neo4j vs SQLite + LanceDB: which to pick, what each gives up.