See vector databases for supported
provider / vector_db values.
One Stack, Three Config Forms
This is the same local setup in each interface: Qdrant athttp://localhost:6333, Voyage embeddings, and OpenAI chat.
SDK Defaults
Use constructor defaults when you are writing Python. Every call on thatrag object can inherit the configured vector store, embedding model, LLM, and reranker.
rag.llm() requires a model unless one was configured in RagRails(llm={...}).CLI Defaults
Use.ragrails.toml when you run terminal commands. The CLI looks for .ragrails.toml in the current working directory.
Run ragrails with no subcommand to open the setup wizard:
.ragrails.toml. After that, commands can be shorter:
.ragrails.toml, pass explicit flags:
.ragrails.toml:
REST API Defaults
REST requests are self-contained. Put provider and vector-store settings in the request body./docs and /v1/openapi.json, so generated clients can type these request bodies.
Secrets
Do not put API keys in.ragrails.toml. Store non-secret defaults in config and keep credentials in environment variables.
Complete .ragrails.toml
Keep only the sections you need.
Validate CLI Config
Rundoctor from the same directory as .ragrails.toml:
--config to inspect a file somewhere else:

