safia logs to inspect runtime errors, or consult the Troubleshooting page for step-by-step diagnostics.
Usage & Limits
How many messages can I send per day?
How many messages can I send per day?
.env file and set:Can I use SAFIA in English?
Can I use SAFIA in English?
What currencies does SAFIA support?
What currencies does SAFIA support?
Setup & Requirements
Does SAFIA require Docker?
Does SAFIA require Docker?
uv, dependencies, and Redis in a single script:docker run -d -p 6379:6379 --name safia-redis redis:7-alpine.How do I get a Telegram bot token?
How do I get a Telegram bot token?
Create a new bot
/newbot and follow the prompts — you’ll choose a display name and a username (must end in bot).What LLM providers does SAFIA support?
What LLM providers does SAFIA support?
LLM_PROVIDER in your .env:| Provider | LLM_PROVIDER value | Notes |
|---|---|---|
| Lunos | lunos | Default. Routes to https://api.lunosrouter.com/v1 |
| Groq | groq | Routes to https://api.groq.com/openai/v1 |
| OpenAI | openai | Routes to https://api.openai.com/v1 |
| Custom | custom | Any OpenAI-compatible API; set LLM_BASE_URL to your endpoint |
LLM_API_KEY. For custom providers, also set LLM_BASE_URL and choose an appropriate LLM_MODEL name.GROQ_API_KEY, regardless of which provider you choose for chat. SAFIA uses Whisper via the Groq API for speech-to-text and there is currently no alternative backend for this feature.What is Lunos?
What is Lunos?
https://api.lunosrouter.com/v1. It is an LLM routing service that exposes an OpenAI-compatible API, allowing SAFIA to use a range of models without you needing accounts at multiple providers.When you run safia setup and don’t specify a different provider, SAFIA configures itself to use Lunos automatically. You can switch to Groq, OpenAI, or any custom OpenAI-compatible provider at any time by updating LLM_PROVIDER and LLM_API_KEY in your .env and restarting.Privacy & Data
Is my financial data private?
Is my financial data private?
| Component | Location |
|---|---|
| Expense & investment records | Local SQLite (or your own PostgreSQL) |
| Chat history | Local Redis |
| Vector embeddings (knowledge base) | Local Qdrant on-disk storage |
| Embedding model | Local ONNX file, runs on CPU |
Can multiple users share one SAFIA instance?
Can multiple users share one SAFIA instance?
How do I back up my data?
How do I back up my data?
pg_dump to back up that database instead. The local Qdrant vector index is stored at data/qdrant/ — include this directory if you also want to preserve your knowledge base embeddings.Can I use PostgreSQL instead of SQLite?
Can I use PostgreSQL instead of SQLite?
DATABASE_URL in your .env to your PostgreSQL connection string:Features & Capabilities
What file types can I upload to the knowledge base?
What file types can I upload to the knowledge base?
- PDF (
.pdf) — financial statements, policy documents, reports - Plain text (
.txt) — notes, custom rules, raw data exports - Word documents (
.docx) — formatted documents from Microsoft Word or compatible editors
KB_MAX_UPLOAD_MB in .env.Once uploaded, SAFIA automatically retrieves relevant passages from the knowledge base to ground its responses — no extra commands needed.How do I update SAFIA to the latest version?
How do I update SAFIA to the latest version?
.env configuration and data files are preserved.data/safia.db before a major update.Does SAFIA support voice messages?
Does SAFIA support voice messages?
GROQ_API_KEY in your .env — this key is free to obtain from console.groq.com and is required even if you use a different provider for chat.Voice messages count toward your daily message limit (25 by default) the same as text messages.Does SAFIA support receipt and document scanning?
Does SAFIA support receipt and document scanning?
LLM_API_KEY. The vision model defaults to mistralai/mistral-small-3.2-24b-instruct and can be changed via the VISION_MODEL setting in .env.For best results:- Make sure the document is well-lit and fully in frame.
- Avoid steep angles or heavy shadows.
- Use the highest camera resolution your device supports.