version: '3.8' services: rag-optimizer: build: context: . dockerfile: Dockerfile container_name: rag-optimizer-dashboard ports: - "8501:8501" volumes: # Mount data directories for persistence - ./data:/app/data - ./chroma_db:/app/chroma_db - ./logs:/app/logs environment: # ===================== # AZURE AI FOUNDRY (Main OpenAI) # ===================== - AZURE_OPENAI_ENDPOINT=${AZURE_OPENAI_ENDPOINT} - AZURE_OPENAI_API_KEY=${AZURE_OPENAI_API_KEY} - AZURE_OPENAI_DEPLOYMENT_NAME=${AZURE_OPENAI_DEPLOYMENT_NAME} # ===================== # Azure OpenAI Embeddings # ===================== - AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME=${AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME} - AZURE_OPENAI_EMBEDDING_MODEL_NAME=${AZURE_OPENAI_EMBEDDING_MODEL_NAME} - AZURE_OPENAI_EMBEDDING_ENDPOINT=${AZURE_OPENAI_EMBEDDING_ENDPOINT} - AZURE_OPENAI_EMBEDDING_API_KEY=${AZURE_OPENAI_EMBEDDING_API_KEY} # ===================== # Cohere via Azure AI Foundry # ===================== - AZURE_COHERE_ENDPOINT=${AZURE_COHERE_ENDPOINT} - AZURE_COHERE_API_KEY=${AZURE_COHERE_API_KEY} - AZURE_COHERE_DEPLOYMENT_NAME=${AZURE_COHERE_DEPLOYMENT_NAME} # ===================== # Azure Cohere Rerank (for retrieval) # ===================== - AZURE_COHERE_RERANK_MODEL_NAME=${AZURE_COHERE_RERANK_MODEL_NAME} - AZURE_COHERE_RERANK_ENDPOINT=${AZURE_COHERE_RERANK_ENDPOINT} - AZURE_COHERE_RERANK_KEY=${AZURE_COHERE_RERANK_KEY} # ===================== # DeepSeek via Azure AI Foundry # ===================== - AZURE_DEEPSEEK_ENDPOINT=${AZURE_DEEPSEEK_ENDPOINT} - AZURE_DEEPSEEK_API_KEY=${AZURE_DEEPSEEK_API_KEY} - AZURE_DEEPSEEK_DEPLOYMENT_NAME=${AZURE_DEEPSEEK_DEPLOYMENT_NAME} # ===================== # Anthropic (Direct API) # ===================== - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} # ===================== # GROQ (Sonnet model - Direct API) # ===================== - GROK_API_KEY=${GROK_API_KEY} # ===================== # Database Configuration # ===================== - DATABASE_URL=${DATABASE_URL:-sqlite:///./data/results.db} # ===================== # ChromaDB Configuration # ===================== - CHROMA_PERSIST_DIR=${CHROMA_PERSIST_DIR:-./data/vector_stores} # ===================== # Streamlit Configuration # ===================== - STREAMLIT_SERVER_PORT=8501 - STREAMLIT_SERVER_ADDRESS=0.0.0.0 - STREAMLIT_BROWSER_GATHER_USAGE_STATS=false restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8501/_stcore/health"] interval: 30s timeout: 10s retries: 3 start_period: 40s networks: - rag-network networks: rag-network: driver: bridge