# Model registry — pin every revision by SHA or explicit tag. Never `latest`. # Read by src/backend/config.py:load_models_config(). # # After changing `embeddings`, rebuild the index: # uv run python scripts/build_index.py llm: default: # Core generation LLM — Tiny Aya (3B, multilingual) backend: tiny_aya repo: CohereLabs/tiny-aya-global # transformers (safetensors) repo — NOT the # -GGUF variant (GGUF has no HF tokenizer and # is only for the llama_cpp backend). revision: b2d281bab0beaecb3418d0c0dc53eaba90574011 # NOTE: CC-BY-NC + gated. Accept the license on the model page and set the # HF_TOKEN Space secret. Runs locally via transformers on the Space (ZeroGPU); # without a token, generation falls back / errors locally (retrieval still works). swap_in: # One-line swap via get_llm_client("swap_in") backend: minicpm repo: openbmb/MiniCPM3-4B # text LLM swap-in (adjust to a newer MiniCPM if desired) revision: # Future benchmark backend (GGUF over a llama.cpp OpenAI-compatible server). # Tiny Aya ships GGUF: CohereLabs/tiny-aya-global-GGUF # llama_cpp: # backend: llama_cpp # base_url: http://127.0.0.1:8080/v1 # repo: CohereLabs/tiny-aya-global-GGUF embeddings: # Query/passage embeddings for FAISS RAG repo: nvidia/llama-nemotron-embed-1b-v2 # Nemotron multilingual embed (1B, ungated) revision: 113abe4acafa848e77ead9c0623205e511932348 # TODO: pin a commit SHA before deploy loader: sentence-transformers # SentenceTransformer(..., trust_remote_code=True) query_prefix: "query: " # required by this model passage_prefix: "passage: " # required by this model normalize: true # L2-normalize so IndexFlatIP == cosine device: auto # auto → cuda on the ZeroGPU Space, cpu locally parsing: # document parsing (OCR / table extraction) repo: # TBD revision: # TBD