version: "3" services: api: image: quay.io/go-skynet/local-ai:v1.18.0-ffmpeg # As initially LocalAI will download the models defined in PRELOAD_MODELS # you might need to tweak the healthcheck values here according to your network connection. # Here we give a timespan of 20m to download all the required files. healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/readyz"] interval: 1m timeout: 20m retries: 20 ports: - 8080:8080 environment: - DEBUG=true - MODELS_PATH=/models - IMAGE_PATH=/tmp # You can preload different models here as well. # See: https://github.com/go-skynet/model-gallery - 'PRELOAD_MODELS=[{"url": "github:go-skynet/model-gallery/gpt4all-j.yaml", "name": "gpt-3.5-turbo"}, {"url": "github:go-skynet/model-gallery/stablediffusion.yaml"}, {"url": "github:go-skynet/model-gallery/whisper-base.yaml", "name": "whisper-1"}]' volumes: - ./models:/models:cached command: ["/usr/bin/local-ai" ] mongo: container_name: mongo image: mongo:latest restart: always ports: - 127.0.0.1:${MONGODB_PORT:-27017}:${MONGODB_PORT:-27017} volumes: - ${MONGODB_PATH:-./mongodb}:/data/db # TODO: add auth chatgpt_telegram_bot: container_name: chatgpt_telegram_bot command: python3 bot/bot.py restart: always environment: - OPENAI_API_KEY=sk---anystringhere - OPENAI_API_BASE=http://api:8080/v1 build: context: "." dockerfile: Dockerfile depends_on: api: condition: service_healthy mongo: condition: service_started mongo_express: container_name: mongo-express image: mongo-express:latest restart: always ports: - 127.0.0.1:${MONGO_EXPRESS_PORT:-8081}:${MONGO_EXPRESS_PORT:-8081} environment: - ME_CONFIG_MONGODB_SERVER=mongo - ME_CONFIG_MONGODB_PORT=${MONGODB_PORT:-27017} - ME_CONFIG_MONGODB_ENABLE_ADMIN=false - ME_CONFIG_MONGODB_AUTH_DATABASE=chatgpt_telegram_bot - ME_CONFIG_BASICAUTH_USERNAME=${MONGO_EXPRESS_USERNAME:-username} - ME_CONFIG_BASICAUTH_PASSWORD=${MONGO_EXPRESS_PASSWORD:-password} depends_on: - mongo