automl_server is the main FastAPI service. It owns the platform API surface for datasets, annotations, tasks, deployment, inference, AI pipeline bindings, and home-page statistics across image, text, multimodal conversation, and preference labeling workflows.
- Default host:
0.0.0.0 - Default port:
45678 - Swagger UI:
/swagger-ui - Health check:
/health
automl_server/
├── app/
│ ├── common/ # shared response, exceptions, constants
│ ├── config/ # settings, database, S3, Nacos
│ ├── db/ # SQLAlchemy models and sessions
│ ├── modules/ # feature modules
│ ├── mq/ # RabbitMQ client, handlers, messages
│ ├── scheduler/ # periodic jobs
│ └── utils/ # HTTP, S3, SSE and file helpers
├── run.py
├── requirements.txt
└── Dockerfile
dataset: dataset CRUD, upload, preview, export, sample managementannotation: annotation project CRUD and record handling for detection, classification, segmentation, pose, LLM/MLLM, and DPO workflowstask: training task submission, progress, logs, and SSE streamdeploy: model deployment management and status syncinginference: inference API for deployed modelsai_pipeline: AI pipeline templates, providers, and bindingshome: platform statistics and recent activity
- MySQL for primary persistence
- MinIO for datasets, models, annotations, and artifacts
- RabbitMQ for training jobs, AI Pipeline RPC, batch annotation execution, and deployment status callbacks
- Nacos for runtime configuration
model_traineras an optional training plug-inmodel_deployas an optional deployment plug-inai_pipeline_runtimeas an optional AI-assisted annotation plug-inai_pipeline_sandboxas the batch annotation execution plug-in
- Training:
automl_server -> RabbitMQ -> model_trainerfor training job deliverymodel_trainer -> RabbitMQ -> automl_serverfor task status, task logs, and model registrationautoml_server -> model_trainerover HTTP for/healthand/tasks/{task_id}/cancel
- Deployment:
automl_server -> model_deployover HTTP for deploy, undeploy, deployment listing, deployment health, and inferencemodel_deploy -> RabbitMQ -> automl_serverformodel.deployedandmodel.undeployed
- AI runtime:
automl_server <-> ai_pipeline_runtimevia RabbitMQ RPC for assist annotation and pipeline execution
- Batch annotation:
automl_server -> RabbitMQ -> ai_pipeline_sandboxforpipeline.batch.executeai_pipeline_sandbox -> RabbitMQ -> automl_serverfor progress and result callbacks
service.heartbeat still exists in the shared message definitions, but trainer and deploy do not currently use a standalone MQ heartbeat channel. Service status in the UI is derived from on-demand /health probes initiated by automl_server.
- Frontend calls
automl_server automl_serverreads config from Nacos or environment variables- The service persists metadata to MySQL and artifacts to MinIO
- Training jobs are published to RabbitMQ when
model_traineris enabled - Deployment control and inference requests are sent to
model_deployover HTTP - Deployment status, training status, logs, model registration, and batch callbacks are consumed back from RabbitMQ
- AI-assisted annotation calls are routed to
ai_pipeline_runtimevia RabbitMQ RPC when enabled
Main configuration lives in:
app/config/settings.pyapp/config/s3_config.pyapp/config/nacos_config_center.py
Environment examples:
automl_server/.env.example- root
.env.example
Nacos config source:
nacos/automl-config.yaml
cd automl_server
pip install -r requirements.txt
python run.pyThe service reads APP_HOST and APP_PORT from the environment and falls back to 0.0.0.0:45678.