118 lines
4.1 KiB
YAML
118 lines
4.1 KiB
YAML
name: ai_stack
|
|
|
|
services:
|
|
cli-proxy-api:
|
|
image: eceasy/cli-proxy-api:latest
|
|
container_name: cli-proxy-api
|
|
pull_policy: always
|
|
ports:
|
|
- '0.0.0.0:8317:8317'
|
|
- '0.0.0.0:8085:8085'
|
|
- '0.0.0.0:1455:1455'
|
|
- '0.0.0.0:54545:54545'
|
|
- '0.0.0.0:51121:51121'
|
|
- '0.0.0.0:11451:11451'
|
|
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:
|
|
- '18003:4000'
|
|
environment:
|
|
- GEMINI_API_KEY=${GEMINI_API_KEY}
|
|
- CLIPROXY_API_KEY=${CLIPROXY_API_KEY}
|
|
volumes:
|
|
- ./litellm:/app/litellm:ro
|
|
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-terminal:
|
|
image: ghcr.io/open-webui/open-terminal:latest
|
|
container_name: open-terminal
|
|
environment:
|
|
- OPEN_TERMINAL_API_KEY=${OPEN_TERMINAL_API_KEY:?OPEN_TERMINAL_API_KEY is required}
|
|
- OPEN_TERMINAL_MULTI_USER=true
|
|
volumes:
|
|
- open-terminal:/home
|
|
restart: unless-stopped
|
|
|
|
open-webui:
|
|
image: ghcr.io/open-webui/open-webui:main
|
|
container_name: open-webui
|
|
pull_policy: always
|
|
ports:
|
|
- '18004:8080'
|
|
environment:
|
|
- OPENAI_API_BASE_URLS=http://litellm:4000/v1;http://cli-proxy-api:8317/v1
|
|
- OPENAI_API_KEYS=dummy;${CLIPROXY_API_KEY}
|
|
- >-
|
|
TERMINAL_SERVER_CONNECTIONS=[{"id":"open-terminal","url":"http://open-terminal:8000","key":"${OPEN_TERMINAL_API_KEY}","name":"Open Terminal","auth_type":"bearer","config":{"access_grants":[]}}]
|
|
- WEBUI_AUTH=true
|
|
- WEBUI_NAME=棋洋
|
|
- OAUTH_ALLOWED_DOMAINS=${OAUTH_ALLOWED_DOMAINS}
|
|
- DEFAULT_USER_ROLE=pending
|
|
- ENABLE_CODE_INTERPRETER=false
|
|
- ENABLE_CODE_EXECUTION=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_IMAGE_GENERATION=true
|
|
- ENABLE_IMAGE_PROMPT_GENERATION=true
|
|
- IMAGE_GENERATION_ENGINE=openai
|
|
- IMAGE_GENERATION_MODEL=gpt-image-2
|
|
- IMAGE_SIZE=1024x1024
|
|
- IMAGES_OPENAI_API_BASE_URL=http://cli-proxy-api:8317/v1
|
|
- IMAGES_OPENAI_API_KEY=${CLIPROXY_API_KEY}
|
|
|
|
- ENABLE_IMAGE_EDIT=true
|
|
- IMAGE_EDIT_ENGINE=openai
|
|
- IMAGE_EDIT_MODEL=gpt-image-2
|
|
- IMAGE_EDIT_SIZE=1024x1024
|
|
- IMAGES_EDIT_OPENAI_API_BASE_URL=http://cli-proxy-api:8317/v1
|
|
- IMAGES_EDIT_OPENAI_API_KEY=${CLIPROXY_API_KEY}
|
|
|
|
# --- 以下是新增的网页搜索相关环境变量 ---
|
|
- ENABLE_WEB_SEARCH=true
|
|
- WEB_SEARCH_ENGINE=ddgs
|
|
- WHISPER_WEB_SEARCH_RESULT_COUNT=5
|
|
- WEB_SEARCH_TRUSTED_PROXY=true
|
|
# ------------------------------------
|
|
volumes:
|
|
- open-webui:/app/backend/data
|
|
depends_on:
|
|
- litellm
|
|
- cli-proxy-api
|
|
- jupyter
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
open-webui:
|
|
jupyter-work:
|
|
open-terminal:
|