142 lines
5.1 KiB
YAML
142 lines
5.1 KiB
YAML
name: ai_chat
|
|
|
|
services:
|
|
cli-proxy-api:
|
|
image: eceasy/cli-proxy-api:latest
|
|
container_name: cli-proxy-api
|
|
pull_policy: always
|
|
ports:
|
|
- '127.0.0.1:8317:8317'
|
|
- '127.0.0.1:8085:8085'
|
|
- '127.0.0.1:1455:1455'
|
|
- '127.0.0.1:54545:54545'
|
|
- '127.0.0.1:51121:51121'
|
|
- '127.0.0.1:11451:11451'
|
|
environment:
|
|
- HTTP_PROXY=http://192.168.1.142:6152
|
|
- HTTPS_PROXY=http://192.168.1.142:6152
|
|
- ALL_PROXY=http://192.168.1.142:6152
|
|
- NO_PROXY=localhost,127.0.0.1,litellm,open-webui,cli-proxy-api
|
|
- no_proxy=localhost,127.0.0.1,litellm,open-webui,cli-proxy-api
|
|
volumes:
|
|
- ./cliproxyapi/config.yaml:/CLIProxyAPI/config.yaml:ro
|
|
- ./cliproxyapi/auths:/root/.cli-proxy-api
|
|
- ./cliproxyapi/logs:/CLIProxyAPI/logs
|
|
restart: unless-stopped
|
|
|
|
litellm:
|
|
image: docker.litellm.ai/berriai/litellm:main-stable
|
|
container_name: litellm
|
|
ports:
|
|
- '4000:4000'
|
|
environment:
|
|
- GEMINI_API_KEY=${GEMINI_API_KEY}
|
|
- HTTP_PROXY=http://192.168.1.142:6152
|
|
- HTTPS_PROXY=http://192.168.1.142:6152
|
|
- ALL_PROXY=http://192.168.1.142:6152
|
|
- NO_PROXY=localhost,127.0.0.1,litellm,open-webui,cli-proxy-api
|
|
- no_proxy=localhost,127.0.0.1,litellm,open-webui,cli-proxy-api
|
|
- GOOGLE_APPLICATION_CREDENTIALS=/app/vertex_key.json
|
|
- CLIPROXY_API_KEY=${CLIPROXY_API_KEY}
|
|
volumes:
|
|
- ./litellm:/app/litellm:ro
|
|
- ./litellm/gen-lang-client-0934968879-03bf3a88d4dd.json:/app/vertex_key.json
|
|
env_file:
|
|
- .env
|
|
depends_on:
|
|
- cli-proxy-api
|
|
command: >
|
|
--config /app/litellm/config.yaml
|
|
--port 4000
|
|
restart: unless-stopped
|
|
|
|
docling-serve:
|
|
image: quay.io/docling-project/docling-serve:latest
|
|
container_name: docling-serve
|
|
pull_policy: always
|
|
ports:
|
|
- '127.0.0.1:5001:5001'
|
|
environment:
|
|
- DOCLING_SERVE_ENABLE_UI=true
|
|
- DOCLING_SERVE_MAX_SYNC_WAIT=600
|
|
- DOCLING_SERVE_ENG_LOC_NUM_WORKERS=2
|
|
- UVICORN_WORKERS=1
|
|
- OMP_NUM_THREADS=4
|
|
- MKL_NUM_THREADS=4
|
|
volumes:
|
|
- docling-data:/app/data
|
|
restart: unless-stopped
|
|
|
|
jupyter:
|
|
image: quay.io/jupyter/datascience-notebook:latest
|
|
container_name: ai-chat-jupyter
|
|
environment:
|
|
- JUPYTER_TOKEN=${JUPYTER_TOKEN}
|
|
command: >
|
|
start-notebook.py
|
|
--ServerApp.token=${JUPYTER_TOKEN}
|
|
--ServerApp.password=
|
|
--ServerApp.allow_origin=*
|
|
volumes:
|
|
- jupyter-work:/home/jovyan/work
|
|
restart: unless-stopped
|
|
|
|
open-webui:
|
|
image: ghcr.io/open-webui/open-webui:main
|
|
container_name: open-webui
|
|
pull_policy: always
|
|
ports:
|
|
- '3000:8080'
|
|
env_file:
|
|
- .env
|
|
environment:
|
|
- OPENAI_API_BASE_URLS=http://litellm:4000/v1;http://cli-proxy-api:8317/v1
|
|
- OPENAI_API_KEYS=dummy;${CLIPROXY_API_KEY}
|
|
- WEBUI_NAME=AI Chat
|
|
- WEBUI_AUTH=true
|
|
- ENABLE_SIGNUP=true
|
|
- ENABLE_LOGIN_FORM=true
|
|
- ENABLE_OAUTH_SIGNUP=true
|
|
- DEFAULT_USER_ROLE=pending
|
|
- OAUTH_ALLOWED_DOMAINS=${OAUTH_ALLOWED_DOMAINS}
|
|
- GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID}
|
|
- GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET}
|
|
- GOOGLE_REDIRECT_URI=${GOOGLE_REDIRECT_URI}
|
|
- GOOGLE_OAUTH_SCOPE=${GOOGLE_OAUTH_SCOPE}
|
|
- ENABLE_IMAGE_GENERATION=true
|
|
- ENABLE_IMAGE_PROMPT_GENERATION=true
|
|
- IMAGE_GENERATION_ENGINE=openai
|
|
- IMAGE_GENERATION_MODEL=imagen-4.0-generate-001-vertex
|
|
- IMAGE_SIZE=1024x1024
|
|
- IMAGES_OPENAI_API_BASE_URL=http://litellm:4000/v1
|
|
- IMAGES_OPENAI_API_KEY=dummy
|
|
- ENABLE_CODE_INTERPRETER=true
|
|
- CODE_INTERPRETER_ENGINE=jupyter
|
|
- CODE_INTERPRETER_JUPYTER_URL=http://jupyter:8888
|
|
- CODE_INTERPRETER_JUPYTER_AUTH=token
|
|
- CODE_INTERPRETER_JUPYTER_AUTH_TOKEN=${JUPYTER_TOKEN}
|
|
- CODE_INTERPRETER_JUPYTER_TIMEOUT=120
|
|
- ENABLE_CODE_EXECUTION=true
|
|
- CODE_EXECUTION_ENGINE=jupyter
|
|
- CODE_EXECUTION_JUPYTER_URL=http://jupyter:8888
|
|
- CODE_EXECUTION_JUPYTER_AUTH=token
|
|
- CODE_EXECUTION_JUPYTER_AUTH_TOKEN=${JUPYTER_TOKEN}
|
|
- CODE_EXECUTION_JUPYTER_TIMEOUT=120
|
|
- CONTENT_EXTRACTION_ENGINE=docling
|
|
- DOCLING_SERVER_URL=http://docling-serve:5001
|
|
- >-
|
|
DOCLING_PARAMS={"do_ocr":true,"pdf_backend":"dlparse_v4","table_mode":"accurate"}
|
|
volumes:
|
|
- open-webui:/app/backend/data
|
|
depends_on:
|
|
- litellm
|
|
- cli-proxy-api
|
|
- docling-serve
|
|
- jupyter
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
open-webui:
|
|
docling-data:
|
|
jupyter-work:
|