version: '3.8' services: # AI Chatbot API chatbot-api: build: . container_name: ai-chatbot-api ports: - "8000:8000" environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - OPENAI_MODEL=${OPENAI_MODEL:-gpt-3.5-turbo} - OLLAMA_BASE_URL=${OLLAMA_BASE_URL:-http://localhost:11434} - OLLAMA_MODEL=${OLLAMA_MODEL:-llama2} - VECTOR_DB_TYPE=${VECTOR_DB_TYPE:-chroma} - CHROMA_PERSIST_DIRECTORY=${CHROMA_PERSIST_DIRECTORY:-./chroma_db} - FAISS_INDEX_PATH=${FAISS_INDEX_PATH:-./faiss_index} - UPLOAD_DIR=${UPLOAD_DIR:-./uploads} - LOG_LEVEL=${LOG_LEVEL:-INFO} - DEBUG=${DEBUG:-True} - WEATHER_API_KEY=${WEATHER_API_KEY} - SERPER_API_KEY=${SERPER_API_KEY} volumes: - ./uploads:/app/uploads - ./logs:/app/logs - ./chroma_db:/app/chroma_db - ./faiss_index:/app/faiss_index restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/health"] interval: 30s timeout: 10s retries: 3 start_period: 40s # Streamlit Frontend chatbot-frontend: build: . container_name: ai-chatbot-frontend ports: - "8501:8501" environment: - STREAMLIT_SERVER_PORT=8501 - STREAMLIT_SERVER_ADDRESS=0.0.0.0 - STREAMLIT_SERVER_HEADLESS=true volumes: - ./frontend:/app/frontend command: streamlit run frontend/streamlit_app.py --server.port=8501 --server.address=0.0.0.0 depends_on: - chatbot-api restart: unless-stopped # Optional: Ollama service (uncomment if using Ollama) # ollama: # image: ollama/ollama:latest # container_name: ollama # ports: # - "11434:11434" # volumes: # - ollama_data:/root/.ollama # restart: unless-stopped volumes: ollama_data: