| services: | |
| gateway: | |
| build: | |
| context: .. | |
| dockerfile: Dockerfile | |
| env_file: | |
| - .env.all-local | |
| environment: | |
| PUBLIC_MODEL_ID: glm-5.2-visual-runtime | |
| VISUAL_RUNTIME_MODE: local | |
| GLM_BASE_URL: http://glm52-vllm:8000/v1 | |
| GLM_API_KEY: EMPTY | |
| GLM_MODEL: glm-5.2 | |
| VISION_BASE_URL: http://vision-vllm:8000/v1 | |
| VISION_API_KEY: EMPTY | |
| VISION_MODEL: qwen3-omni | |
| OCR_BASE_URL: http://ocr:8080 | |
| DATABASE_URL: postgresql+psycopg://glm_vvr:glm_vvr@postgres:5432/glm_vvr | |
| OBJECT_STORE_ENDPOINT: http://minio:9000 | |
| OBJECT_STORE_BUCKET: glm-vvr | |
| OBJECT_STORE_ACCESS_KEY: glm-vvr | |
| OBJECT_STORE_SECRET_KEY: glm-vvr-password | |
| ports: | |
| - "8000:8000" | |
| depends_on: | |
| - glm52-vllm | |
| - vision-vllm | |
| - ocr | |
| - postgres | |
| - minio | |
| glm52-vllm: | |
| image: vllm/vllm-openai:glm52 | |
| command: | |
| - "${GLM_MODEL_PATH:-zai-org/GLM-5.2-FP8}" | |
| - --host | |
| - 0.0.0.0 | |
| - --port | |
| - "8000" | |
| - --served-model-name | |
| - glm-5.2 | |
| - --kv-cache-dtype | |
| - fp8 | |
| - --tensor-parallel-size | |
| - "${GLM_TENSOR_PARALLEL_SIZE:-8}" | |
| - --speculative-config.method | |
| - mtp | |
| - --speculative-config.num_speculative_tokens | |
| - "5" | |
| - --tool-call-parser | |
| - glm47 | |
| - --reasoning-parser | |
| - glm45 | |
| - --enable-auto-tool-choice | |
| ports: | |
| - "8001:8000" | |
| ipc: host | |
| volumes: | |
| - "${HF_HOME:-${HOME}/.cache/huggingface}:/root/.cache/huggingface" | |
| - "../models:/models:ro" | |
| deploy: | |
| resources: | |
| reservations: | |
| devices: | |
| - driver: nvidia | |
| count: all | |
| capabilities: [gpu] | |
| vision-vllm: | |
| image: vllm/vllm-openai:latest | |
| command: | |
| - "${QWEN_OMNI_MODEL_PATH:-Qwen/Qwen3-Omni-30B-A3B-Instruct}" | |
| - --omni | |
| - --host | |
| - 0.0.0.0 | |
| - --port | |
| - "8000" | |
| - --served-model-name | |
| - qwen3-omni | |
| - --tensor-parallel-size | |
| - "${VISION_TENSOR_PARALLEL_SIZE:-2}" | |
| - --limit-mm-per-prompt | |
| - '{"image": 8, "video": 1, "audio": 1}' | |
| ports: | |
| - "8002:8000" | |
| ipc: host | |
| volumes: | |
| - "${HF_HOME:-${HOME}/.cache/huggingface}:/root/.cache/huggingface" | |
| - "../models:/models:ro" | |
| - visual-runtime-data:/data | |
| deploy: | |
| resources: | |
| reservations: | |
| devices: | |
| - driver: nvidia | |
| count: all | |
| capabilities: [gpu] | |
| ocr: | |
| build: | |
| context: ./ocr | |
| ports: | |
| - "8081:8080" | |
| postgres: | |
| image: postgres:16 | |
| environment: | |
| POSTGRES_DB: glm_vvr | |
| POSTGRES_USER: glm_vvr | |
| POSTGRES_PASSWORD: glm_vvr | |
| ports: | |
| - "5432:5432" | |
| volumes: | |
| - postgres-data:/var/lib/postgresql/data | |
| minio: | |
| image: minio/minio:latest | |
| command: server /data --console-address ":9001" | |
| environment: | |
| MINIO_ROOT_USER: glm-vvr | |
| MINIO_ROOT_PASSWORD: glm-vvr-password | |
| ports: | |
| - "9000:9000" | |
| - "9001:9001" | |
| volumes: | |
| - minio-data:/data | |
| volumes: | |
| postgres-data: | |
| minio-data: | |
| visual-runtime-data: | |