Initial commit

This commit is contained in:
alook
2026-08-18 10:03:35 +08:00
commit 8e4424b82a
11 changed files with 1524 additions and 0 deletions
+118
View File
@@ -0,0 +1,118 @@
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
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
volumes:
- open-webui:/app/backend/data
depends_on:
- litellm
- cli-proxy-api
- jupyter
restart: unless-stopped
volumes:
open-webui:
jupyter-work: