chore: import upstream snapshot with attribution
Update draft releases / main (push) Has been cancelled
Build and push docs image / build-image (push) Has been cancelled
Build Web Application / build-web (macos-latest) (push) Has been cancelled
Build Web Application / build-web (ubuntu-latest) (push) Has been cancelled
Python Code Quality Checks / build (push) Has been cancelled
Test Python / test-python (macos-latest, 3.10) (push) Has been cancelled
Test Python / test-python (macos-latest, 3.11) (push) Has been cancelled
Test Python / test-python (ubuntu-latest, 3.10) (push) Has been cancelled
Test Python / test-python (ubuntu-latest, 3.11) (push) Has been cancelled

This commit is contained in:
wehub-resource-sync
2026-07-13 13:27:08 +08:00
commit d13100ebf3
4413 changed files with 764874 additions and 0 deletions
@@ -0,0 +1,102 @@
version: '3.10'
services:
controller:
image: eosphorosai/dbgpt:latest
command: dbgpt start controller
restart: unless-stopped
networks:
- dbgptnet
api-server:
image: eosphorosai/dbgpt:latest
command: dbgpt start apiserver --controller_addr http://controller:8000
restart: unless-stopped
depends_on:
- controller
networks:
- dbgptnet
ports:
- 8100:8100/tcp
llm-worker:
image: eosphorosai/dbgpt:latest
command: dbgpt start worker --model_name glm-4-9b-chat --model_path /app/models/glm-4-9b-chat --port 8001 --controller_addr http://controller:8000
environment:
- DBGPT_LOG_LEVEL=DEBUG
depends_on:
- controller
volumes:
- /data:/data
# Please modify it to your own model directory
- /data/models:/app/models
restart: unless-stopped
networks:
- dbgptnet
ipc: host
deploy:
resources:
reservations:
devices:
- driver: nvidia
capabilities: [gpu]
embedding-worker:
image: eosphorosai/dbgpt:latest
command: dbgpt start worker --model_name text2vec --worker_type text2vec --model_path /app/models/text2vec-large-chinese --port 8002 --controller_addr http://controller:8000
environment:
- DBGPT_LOG_LEVEL=DEBUG
depends_on:
- controller
volumes:
- /data:/data
# Please modify it to your own model directory
- /data/models:/app/models
restart: unless-stopped
networks:
- dbgptnet
deploy:
resources:
reservations:
devices:
- driver: nvidia
capabilities: [gpu]
webserver:
image: eosphorosai/dbgpt:latest
command: dbgpt start webserver --light --remote_embedding
environment:
- DBGPT_LOG_LEVEL=DEBUG
- LOCAL_DB_PATH=data/default_sqlite.db
- LOCAL_DB_TYPE=sqlite
- ALLOWLISTED_PLUGINS=db_dashboard
- LLM_MODEL=glm-4-9b-chat
- MODEL_SERVER=http://controller:8000
depends_on:
- controller
- llm-worker
- embedding-worker
volumes:
- /data:/data
# Please modify it to your own model directory
- /data/models:/app/models
- dbgpt-data:/app/pilot/data
- dbgpt-message:/app/pilot/message
# env_file:
# - .env.template
ports:
- 5000:5000/tcp
# webserver may be failed, it must wait all sqls in /docker-entrypoint-initdb.d execute finish.
restart: unless-stopped
networks:
- dbgptnet
deploy:
resources:
reservations:
devices:
- driver: nvidia
capabilities: [gpu]
volumes:
dbgpt-myql-db:
dbgpt-data:
dbgpt-message:
networks:
dbgptnet:
driver: bridge
name: dbgptnet
@@ -0,0 +1,64 @@
[system]
# Load language from environment variable(It is set by the hook)
language = "${env:DBGPT_LANG:-en}"
log_level = "INFO"
api_keys = []
encrypt_key = "your_secret_key"
# Server Configurations
[service.web]
host = "0.0.0.0"
port = 5670
light = true
controller_addr = "${env:CONTROLLER_ADDR}"
[service.web.database]
type = "mysql"
host = "${env:MYSQL_HOST}"
port = "${env:MYSQL_PORT}"
database = "${env:MYSQL_DATABASE}"
user = "${env:MYSQL_USER}"
password ="${env:MYSQL_PASSWORD}"
# Model Configurations
# Server Configurations
[service.model.worker]
host = "0.0.0.0"
port = 8001
worker_type = "${env:WORKER_TYPE:-llm}"
controller_addr = "${env:CONTROLLER_ADDR}"
[models]
default_embedding = "${env:EMBEDDING_MODEL_NAME:-text-embedding-3-small}"
[[models.llms]]
name = "${env:LLM_MODEL_NAME:-gpt-4o}"
provider = "${env:LLM_MODEL_PROVIDER:-proxy/openai}"
api_base = "${env:OPENAI_API_BASE:-https://api.openai.com/v1}"
api_key = "${env:OPENAI_API_KEY}"
[[models.embeddings]]
name = "${env:EMBEDDING_MODEL_NAME:-text-embedding-3-small}"
provider = "${env:EMBEDDING_MODEL_PROVIDER:-proxy/openai}"
api_url = "${env:EMBEDDING_MODEL_API_URL:-https://api.openai.com/v1/embeddings}"
api_key = "${env:OPENAI_API_KEY}"
[service.model.api]
host = "0.0.0.0"
port = 8100
controller_addr = "${env:CONTROLLER_ADDR}"
[service.model.controller]
host = "0.0.0.0"
port = 8000
[service.model.controller.registry.database]
type = "mysql"
host = "${env:MYSQL_HOST}"
port = "${env:MYSQL_PORT}"
database = "${env:MYSQL_DATABASE}"
user = "${env:MYSQL_USER}"
password ="${env:MYSQL_PASSWORD}"
[log]
level = "DEBUG"
@@ -0,0 +1,28 @@
[system]
# Load language from environment variable(It is set by the hook)
language = "${env:DBGPT_LANG:-en}"
log_level = "INFO"
api_keys = []
encrypt_key = "your_secret_key"
# Server Configurations
[service.web]
host = "0.0.0.0"
port = 5670
light = true
controller_addr = "${env:CONTROLLER_ADDR}"
[service.web.database]
type = "mysql"
host = "${env:MYSQL_HOST}"
port = "${env:MYSQL_PORT}"
database = "${env:MYSQL_DATABASE}"
user = "${env:MYSQL_USER}"
password ="${env:MYSQL_PASSWORD}"
[models]
default_embedding = "${env:EMBEDDING_MODEL_NAME:-text-embedding-3-small}"
[log]
level = "INFO"
@@ -0,0 +1,40 @@
version: '3.8'
services:
oceanbase:
image: oceanbase/oceanbase-ce:vector
ports:
- 2881:2881
networks:
- dbgptnet
dbgpt:
image: eosphorosai/dbgpt-allinone
environment:
- DBGPT_WEBSERVER_PORT=12345
- VECTOR_STORE_TYPE=OceanBase
- OB_HOST=oceanbase
- OB_HOST=127.0.0.1
- OB_PORT=2881
- OB_USER=root@test
- OB_DATABASE=test
- LOCAL_DB_TYPE=sqlite
- LLM_MODEL=tongyi_proxyllm
- PROXYLLM_BACKEND=qwen-plus
- EMBEDDING_MODEL=text2vec
# your api key
# - TONGYI_PROXY_API_KEY={your-api-key}
- LANGUAGE=zh
# - OB_ENABLE_NORMALIZE_VECTOR=True
ports:
- 3306:3306
- 12345:12345
volumes:
# - {your-ob-sql-dbg-log-dir}:/sql_log
# - {your-model-dir}:/app/models
networks:
- dbgptnet
networks:
dbgptnet:
driver: bridge
name: dbgptnet
@@ -0,0 +1,184 @@
# An example of using docker-compose to start a HA model serving cluster with two controllers and one worker.
# For simplicity, we use chatgpt_proxyllm as the model for the worker, and we build a new docker image named eosphorosai/dbgpt-openai:latest.
# How to build the image:
# run `bash ./docker/base/build_proxy_image.sh` in the root directory of the project.
# If you want to use other pip index url, you can run command with `--pip-index-url` option.
# For example, `bash ./docker/base/build_proxy_image.sh --pip-index-url https://pypi.tuna.tsinghua.edu.cn/simple`
#
# How to start the cluster:
# 1. run `cd docker/compose_examples`
# 2. run `OPENAI_API_KEY="{your api key}" OPENAI_API_BASE="https://api.openai.com/v1" docker compose -f ha-cluster-docker-compose.yml up -d`
# Note: Make sure you have set the environment variables OPENAI_API_KEY.
# Optionally, if you want to use other provider(like proxy/siliconflow), you can set following environment variables:
# LLM_MODEL_PROVIDER="proxy/siliconflow" \
# LLM_MODEL_NAME="Qwen/Qwen2.5-Coder-32B-Instruct" \
# OPENAI_API_BASE="https://api.siliconflow.cn/v1" \
# OPENAI_API_KEY="${SILICONFLOW_API_KEY}" \
# EMBEDDING_MODEL_PROVIDER="proxy/openai" \
# EMBEDDING_MODEL_NAME="BAAI/bge-large-zh-v1.5" \
# EMBEDDING_MODEL_API_URL="https://api.siliconflow.cn/v1/embeddings" \
# docker compose -f ha-cluster-docker-compose.yml up -d
version: '3.10'
services:
init:
image: busybox
volumes:
- ../examples/sqls:/sqls
- ../../assets/schema/dbgpt.sql:/dbgpt.sql
- dbgpt-init-scripts:/docker-entrypoint-initdb.d
command: /bin/sh -c "cp /dbgpt.sql /docker-entrypoint-initdb.d/ && cp /sqls/* /docker-entrypoint-initdb.d/ && ls /docker-entrypoint-initdb.d/"
db:
image: mysql/mysql-server
environment:
MYSQL_USER: 'user'
MYSQL_PASSWORD: 'password'
MYSQL_ROOT_PASSWORD: 'aa123456'
ports:
- 3306:3306
volumes:
- dbgpt-myql-db:/var/lib/mysql
- ../examples/my.cnf:/etc/my.cnf
- dbgpt-init-scripts:/docker-entrypoint-initdb.d
restart: unless-stopped
networks:
- dbgptnet
depends_on:
- init
controller-1:
image: eosphorosai/dbgpt-openai:latest
# command: python packages/dbgpt-core/src/dbgpt/model/cluster/controller/controller.py -c /root/configs/ha-model-cluster.toml
command: dbgpt start controller -c /root/configs/ha-model-cluster.toml
environment:
- MYSQL_PASSWORD=aa123456
- MYSQL_HOST=db
- MYSQL_PORT=3306
- MYSQL_DATABASE=dbgpt
- MYSQL_USER=root
volumes:
- ../../:/app
- ./conf/ha-model-cluster.toml:/root/configs/ha-model-cluster.toml
restart: unless-stopped
networks:
- dbgptnet
depends_on:
- db
controller-2:
image: eosphorosai/dbgpt-openai:latest
# command: python packages/dbgpt-core/src/dbgpt/model/cluster/controller/controller.py -c /root/configs/ha-model-cluster.toml
command: dbgpt start controller -c /root/configs/ha-model-cluster.toml
environment:
- MYSQL_PASSWORD=aa123456
- MYSQL_HOST=db
- MYSQL_PORT=3306
- MYSQL_DATABASE=dbgpt
- MYSQL_USER=root
volumes:
- ../../:/app
- ./conf/ha-model-cluster.toml:/root/configs/ha-model-cluster.toml
restart: unless-stopped
networks:
- dbgptnet
depends_on:
- db
llm-worker:
image: eosphorosai/dbgpt-openai:latest
# command: python packages/dbgpt-core/src/dbgpt/model/cluster/worker/manager.py -c /root/configs/ha-model-cluster.toml
command: dbgpt start worker -c /root/configs/ha-model-cluster.toml
environment:
- WORKER_TYPE=llm
- LLM_MODEL_PROVIDER=${LLM_MODEL_PROVIDER:-proxy/openai}
- LLM_MODEL_NAME=${LLM_MODEL_NAME:-gpt-4o}
- OPENAI_API_BASE=${OPENAI_API_BASE:-https://api.openai.com/v1}
- OPENAI_API_KEY=${OPENAI_API_KEY}
- CONTROLLER_ADDR=http://controller-1:8000,http://controller-2:8000
depends_on:
- controller-1
- controller-2
volumes:
- ../../:/app
- ./conf/ha-model-cluster.toml:/root/configs/ha-model-cluster.toml
restart: unless-stopped
networks:
- dbgptnet
ipc: host
embedding-worker:
image: eosphorosai/dbgpt-openai:latest
# command: python packages/dbgpt-core/src/dbgpt/model/cluster/worker/manager.py -c /root/configs/ha-model-cluster.toml
command: dbgpt start worker -c /root/configs/ha-model-cluster.toml
environment:
- WORKER_TYPE=text2vec
- EMBEDDING_MODEL_PROVIDER=${EMBEDDING_MODEL_PROVIDER:-proxy/openai}
- EMBEDDING_MODEL_NAME=${EMBEDDING_MODEL_NAME:-text-embedding-3-small}
- EMBEDDING_MODEL_API_URL=${EMBEDDING_MODEL_API_URL:-https://api.openai.com/v1/embeddings}
- OPENAI_API_KEY=${OPENAI_API_KEY}
- CONTROLLER_ADDR=http://controller-1:8000,http://controller-2:8000
depends_on:
- controller-1
- controller-2
volumes:
- ../../:/app
- ./conf/ha-model-cluster.toml:/root/configs/ha-model-cluster.toml
restart: unless-stopped
networks:
- dbgptnet
ipc: host
webserver:
image: eosphorosai/dbgpt-openai:latest
# command: python packages/dbgpt-app/src/dbgpt_app/dbgpt_server.py -c /root/configs/ha-webserver.toml
command: dbgpt start webserver -c /root/configs/ha-webserver.toml
environment:
- MYSQL_PASSWORD=aa123456
- MYSQL_HOST=db
- MYSQL_PORT=3306
- MYSQL_DATABASE=dbgpt
- MYSQL_USER=root
- EMBEDDING_MODEL_NAME=${EMBEDDING_MODEL_NAME:-text-embedding-3-small}
- CONTROLLER_ADDR=http://controller-1:8000,http://controller-2:8000
depends_on:
- controller-1
- controller-2
- llm-worker
- embedding-worker
volumes:
- ../../:/app
- ./conf/ha-webserver.toml:/root/configs/ha-webserver.toml
- dbgpt-data:/app/pilot/data
- dbgpt-message:/app/pilot/message
# env_file:
# - .env.template
ports:
- 5670:5670/tcp
# webserver may be failed, it must wait all sqls in /docker-entrypoint-initdb.d execute finish.
restart: unless-stopped
networks:
- dbgptnet
apiserver:
image: eosphorosai/dbgpt-openai:latest
command: dbgpt start apiserver -c /root/configs/ha-model-cluster.toml
environment:
- CONTROLLER_ADDR=http://controller-1:8000,http://controller-2:8000
depends_on:
- controller-1
- controller-2
- llm-worker
- embedding-worker
volumes:
- ../../:/app
- ./conf/ha-model-cluster.toml:/root/configs/ha-model-cluster.toml
ports:
- 8100:8100/tcp
restart: unless-stopped
networks:
- dbgptnet
ipc: host
volumes:
dbgpt-init-scripts:
dbgpt-myql-db:
dbgpt-data:
dbgpt-message:
networks:
dbgptnet:
driver: bridge
name: dbgptnet
@@ -0,0 +1,113 @@
# An example of using docker-compose to start a cluster with observability enabled.
# For simplicity, we use chatgpt_proxyllm as the model for the worker, and we build a new docker image named eosphorosai/dbgpt-openai:latest.
# How to build the image:
# run `bash ./docker/base/build_proxy_image.sh` in the root directory of the project.
# If you want to use other pip index url, you can run command with `--pip-index-url` option.
# For example, `bash ./docker/base/build_proxy_image.sh --pip-index-url https://pypi.tuna.tsinghua.edu.cn/simple`
#
# How to start the cluster:
# 1. run `cd docker/compose_examples/observability`
# 2. run `OPENAI_API_KEY="{your api key}" OPENAI_API_BASE="https://api.openai.com/v1" docker compose up -d`
# Note: Make sure you have set the environment variables OPENAI_API_KEY.
version: '3.10'
services:
jaeger:
image: jaegertracing/all-in-one:1.58
restart: unless-stopped
networks:
- dbgptnet
ports:
# serve frontend
- "16686:16686"
# accept jaeger.thrift over Thrift-compact protocol (used by most SDKs)
- "6831:6831"
# accept OpenTelemetry Protocol (OTLP) over HTTP
- "4318:4318"
# accept OpenTelemetry Protocol (OTLP) over gRPC
- "4317:4317"
- "14268:14268"
environment:
- LOG_LEVEL=debug
- SPAN_STORAGE_TYPE=badger
- BADGER_EPHEMERAL=false
- BADGER_DIRECTORY_VALUE=/badger/data
- BADGER_DIRECTORY_KEY=/badger/key
volumes:
# Set the uid and gid to the same as the user in the container
- jaeger-badger:/badger:uid=10001,gid=10001
user: root
controller:
image: eosphorosai/dbgpt-openai:latest
command: dbgpt start controller
restart: unless-stopped
environment:
- TRACER_TO_OPEN_TELEMETRY=True
- OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://jaeger:4317
- DBGPT_LOG_LEVEL=DEBUG
volumes:
- ../../../:/app
networks:
- dbgptnet
llm-worker:
image: eosphorosai/dbgpt-openai:latest
command: dbgpt start worker --model_type proxy --model_name chatgpt_proxyllm --model_path chatgpt_proxyllm --proxy_server_url ${OPENAI_API_BASE}/chat/completions --proxy_api_key ${OPENAI_API_KEY} --controller_addr http://controller:8000
environment:
# Your real openai model name, e.g. gpt-3.5-turbo, gpt-4o
- PROXYLLM_BACKEND=gpt-3.5-turbo
- TRACER_TO_OPEN_TELEMETRY=True
- OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://jaeger:4317
- DBGPT_LOG_LEVEL=DEBUG
depends_on:
- controller
volumes:
- ../../../:/app
restart: unless-stopped
networks:
- dbgptnet
ipc: host
embedding-worker:
image: eosphorosai/dbgpt-openai:latest
command: dbgpt start worker --worker_type text2vec --model_name proxy_http_openapi --model_path proxy_http_openapi --proxy_server_url ${OPENAI_API_BASE}/embeddings --proxy_api_key ${OPENAI_API_KEY} --controller_addr http://controller:8000
environment:
- proxy_http_openapi_proxy_backend=text-embedding-3-small
- TRACER_TO_OPEN_TELEMETRY=True
- OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://jaeger:4317
- DBGPT_LOG_LEVEL=DEBUG
depends_on:
- controller
volumes:
- ../../../:/app
restart: unless-stopped
networks:
- dbgptnet
ipc: host
webserver:
image: eosphorosai/dbgpt-openai:latest
command: dbgpt start webserver --light --remote_embedding --controller_addr http://controller:8000
environment:
- LLM_MODEL=chatgpt_proxyllm
- EMBEDDING_MODEL=proxy_http_openapi
- TRACER_TO_OPEN_TELEMETRY=True
- OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://jaeger:4317
depends_on:
- controller
- llm-worker
- embedding-worker
volumes:
- ../../../:/app
- dbgpt-data:/app/pilot/data
- dbgpt-message:/app/pilot/message
ports:
- 5670:5670/tcp
restart: unless-stopped
networks:
- dbgptnet
volumes:
dbgpt-data:
dbgpt-message:
jaeger-badger:
networks:
dbgptnet:
driver: bridge
name: dbgptnet