# qi configuration — annotated example # Copy to ~/.config/qi/config.yaml and customize. # Path to the SQLite database (supports ~ expansion) database_path: ~/.local/share/qi/qi.db # Collections: directories of documents to index. # Names are generated from paths; keep name aligned with path. collections: - name: notes path: ~/notes description: Personal notes and documents extensions: [.md, .txt] # Omit to use defaults (.md, .markdown, .txt, .text) ignore: [.git, node_modules, .DS_Store] - name: wiki path: ~/wiki description: Team wiki and documentation extensions: [.md, .txt] ignore: [.git, .DS_Store] providers: # Embedding provider for vector search (OpenAI-compatible /v1/embeddings) # Uncomment to enable hybrid search with local Ollama or llama.cpp # embedding: # name: ollama # base_url: http://localhost:11434 # ${VAR} env references are expanded # model: nomic-embed-text # dimension: 768 # batch_size: 32 # max_input_chars: 24000 # optional safety net: truncate texts over ~6k tokens (omit/0 = no limit) # api_key: ${OPENAI_API_KEY} # optional; ${VAR} is read from the environment search: default_mode: hybrid # lexical | hybrid | deep bm25_top_k: 50 # Candidates from BM25 for fusion vector_top_k: 50 # Candidates from vector search for fusion rrf_k: 60 # Reciprocal Rank Fusion constant (default 60) chunk_size: 512 # Target chunk size in characters # prefer_extensions: [.md, .txt] # Boost scores for these file types # extension_boost: 2.0 # Multiplier applied to preferred extensions (default 2.0)