# DVAIA - Environment Configuration Example # Copy this file to .env and customize as needed # ============================================================ # Application Configuration (recommended values) # ============================================================ # Flask server port PORT=5000 # Default LLM model DEFAULT_MODEL=ollama:llama3.2:3b # Agentic panel: thinking model for CoT/reasoning # Use a model that supports Ollama "think" (e.g. qwen3:0.6b, deepseek-r1:8b) AGENTIC_MODEL=qwen3:0.6b # Document Injection vision mode — image bytes to VLM (not OCR text) VISION_MODEL=ollama:qwen2.5vl:7b # Document Injection audio transcription — local Whisper via faster-whisper WHISPER_MODEL=base WHISPER_DEVICE=cpu WHISPER_COMPUTE_TYPE=int8 WHISPER_VAD_FILTER=false WHISPER_NO_SPEECH_THRESHOLD=0.35 WHISPER_GAIN_BOOST_DB=15 WHISPER_MULTI_PASS=true WHISPER_FALLBACK_GOOGLE=false # Ollama host URL when running the app on the host (not inside Docker). # ./run_docker.sh forces http://ollama:11434 inside the app container. OLLAMA_HOST=http://localhost:11480 # Embedding backend and model for RAG (ollama | gemini | openai) EMBEDDING_BACKEND=ollama EMBEDDING_MODEL=nomic-embed-text EMBEDDING_MODEL_GEMINI=text-embedding-004 EMBEDDING_MODEL_OPENAI=text-embedding-3-small # Gemini cloud backend (optional — set GOOGLE_API_KEY to enable UI "Cloud (Gemini)" toggle) # Get a key: https://aistudio.google.com/apikey GOOGLE_API_KEY= # OpenAI cloud backend (optional — set OPENAI_API_KEY to enable UI "Cloud (OpenAI)" toggle) # Get a key: https://platform.openai.com/api-keys OPENAI_API_KEY= # Gemini-only mode: skip Ollama container and local LLM downloads (Docker: ./run_docker.sh --gemini-only) # Requires GOOGLE_API_KEY. Whisper/OCR still run locally in the app container (~150MB Whisper base in Docker). # To switch back to local Ollama: GEMINI_ONLY=false, EMBEDDING_BACKEND=ollama, Ollama model vars below, # then ./run_docker.sh (first start pulls ~9-10GB: llama3.2:3b, nomic-embed-text, qwen3:0.6b, qwen2.5vl:7b). GEMINI_ONLY=false # OpenAI-only mode: skip Ollama (Docker: ./run_docker.sh --openai-only). Requires OPENAI_API_KEY. OPENAI_ONLY=false # When GEMINI_ONLY=true, use these instead of Ollama defaults: #EMBEDDING_BACKEND=gemini #DEFAULT_MODEL=gemini:gemini-3-flash-preview #VISION_MODEL=gemini:gemini-3-flash-preview #AGENTIC_MODEL=gemini:gemini-3-flash-preview # When OPENAI_ONLY=true, use these instead of Ollama defaults: #EMBEDDING_BACKEND=openai #DEFAULT_MODEL=openai:gpt-4o-mini #VISION_MODEL=openai:gpt-4o #AGENTIC_MODEL=openai:gpt-4o-mini GEMINI_MODEL=gemini-3-flash-preview GEMINI_CHAT_MODEL=gemini-3-flash-preview GEMINI_VISION_MODEL=gemini-3-flash-preview GEMINI_AGENTIC_MODEL=gemini-3-flash-preview OPENAI_CHAT_MODEL=gpt-4o-mini OPENAI_VISION_MODEL=gpt-4o OPENAI_AGENTIC_MODEL=gpt-4o-mini # Web Injection — headless Playwright for JS-rendered SPAs (default: HTTP + BeautifulSoup) # Requires: pip install playwright && playwright install chromium WEB_FETCH_JS=false # ============================================================ # Security (REQUIRED for production) # ============================================================ # Flask secret key for sessions — generate your own before deploying # Generate with: openssl rand -hex 32 #SECRET_KEY=your-secret-key-here # ============================================================ # Storage Paths (Docker uses data/ under the project mount by default) # ============================================================ # Persist document DB and uploads across restarts (recommended for Docker with .:/app mount): DATABASE_URI=data/app.db UPLOAD_DIR=data/uploads PAYLOADS_OUTPUT_DIR=data/payloads/generate # Ephemeral lab mode (cleared when the container filesystem is recreated): #DATABASE_URI=/tmp/app.db #UPLOAD_DIR=/tmp/uploads #PAYLOADS_OUTPUT_DIR=/tmp/payloads/generate # Wipe document DB, uploads, and RAG collections on each app start (Settings can toggle this too). # Legacy alias: RESET_DB_ON_START=1 RESET_DATA_ON_START=false # Local dev paths (uncomment for non-Docker runs outside the repo): #DATABASE_URI=data/app.db #UPLOAD_DIR=data/uploads #PAYLOADS_OUTPUT_DIR=data/payloads/generate # ============================================================ # Qdrant Vector Database (for RAG features) # ============================================================ # Local dev. Docker Compose sets QDRANT_HOST=qdrant internally QDRANT_URL=http://localhost:6333 QDRANT_COLLECTION=rag_chunks # Qdrant API key (optional, for Qdrant Cloud only) #QDRANT_API_KEY= # ============================================================ # Notes # ============================================================ # # - Recommended values above match core/config.py defaults # - Copy to .env and adjust for your setup # - Docker: ./run_docker.sh (Ollama) or GEMINI_ONLY=true / ./run_docker.sh --gemini-only # or OPENAI_ONLY=true / ./run_docker.sh --openai-only # - Docker Compose sets QDRANT_HOST for containers; OLLAMA_HOST only with --profile ollama # - Keep secrets (SECRET_KEY) in .env, not in version control # - See README.md for full documentation