Spaces:
Running
Running
AILIXIR Docker Stack
Monorepo stack: Laravel API + ADMET + Drug Repurposing + Chemical RAG.
Requirements
- Docker 24+ with Compose v2
- ~16 GB RAM recommended (PyTorch + ADMET models)
- Model artifacts present locally:
ai_apps/ADMIT/admet_inference/models/*/best_model.ckptai_apps/Drug Reporposing/save_folder/pretrained_models/...
Quick start
# From repository root
docker compose build
docker compose up -d
| Service | Host URL |
|---|---|
| Laravel API | http://localhost:8080 |
| ADMET | http://localhost:8002 |
| Drug Repurposing | http://localhost:8001 |
| Chemical RAG | http://localhost:5000 |
Laravel → AI integration endpoints
Enabled when AI_INTEGRATION_ROUTES_ENABLED=true (set in docker/laravel.env).
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/ai-services/health |
Ping all AI /health endpoints |
| POST | /api/ai-services/test/admet |
Proxy ADMET /predict |
| POST | /api/ai-services/test/chemical-search |
Proxy Chemical RAG retrieval |
| GET | /api/ai-services/test/drug-repurposing |
Health + model status |
Example:
curl http://localhost:8080/api/ai-services/health
curl -X POST http://localhost:8080/api/ai-services/test/admet \
-H "Content-Type: application/json" \
-d '{"smiles":"c1ccccc1"}'
Images
- Laravel: multi-stage (
composer+node+php:8.3-cli-alpine), runs aswww-data - ADMET / Drug Repurposing: existing multi-stage Python slim images, non-root UID 1000
- Chemical RAG: multi-stage
python:3.11-slim, non-rootraguser - MySQL:
mariadb:11.4
CI
GitHub Actions workflow: .github/workflows/integration-test.yml
Builds the full stack and tests Laravel proxy endpoints against all AI services.
Environment
Copy and adjust docker/laravel.env for container-specific values. For local (non-Docker) development, set URLs in .env using .env.example as reference.