| | .PHONY: help install dev test lint format run run-ui docker-build docker-up docker-down clean |
| |
|
| | # Default target |
| | help: |
| | @echo "Cascade - Intelligent LLM Router" |
| | @echo "" |
| | @echo "Usage: make [target]" |
| | @echo "" |
| | @echo "Development:" |
| | @echo " install Install dependencies with Poetry" |
| | @echo " dev Install with dev dependencies" |
| | @echo " test Run tests with pytest" |
| | @echo " lint Run linting (ruff + black check)" |
| | @echo " format Format code with black" |
| | @echo "" |
| | @echo "Running:" |
| | @echo " run Start the API server" |
| | @echo " run-ui Start the Streamlit UI" |
| | @echo "" |
| | @echo "Docker:" |
| | @echo " docker-build Build Docker image" |
| | @echo " docker-up Start all services with docker-compose" |
| | @echo " docker-down Stop all services" |
| | @echo "" |
| | @echo "Deployment:" |
| | @echo " deploy-railway Deploy to Railway" |
| | @echo " deploy-fly Deploy to Fly.io" |
| | @echo "" |
| | @echo "Other:" |
| | @echo " clean Clean up build artifacts" |
| |
|
| | # Development |
| | install: |
| | poetry install --no-dev |
| |
|
| | dev: |
| | poetry install |
| |
|
| | test: |
| | PYTHONPATH=src poetry run pytest tests/ -v --cov=src/cascade |
| |
|
| | lint: |
| | poetry run ruff check src/ |
| | poetry run black --check src/ |
| |
|
| | format: |
| | poetry run black src/ |
| | poetry run ruff check --fix src/ |
| |
|
| | # Running locally |
| | run: |
| | PYTHONPATH=src poetry run uvicorn cascade.api.main:app --reload --host 0.0.0.0 --port 8000 |
| |
|
| | run-ui: |
| | PYTHONPATH=src poetry run streamlit run src/cascade/ui/app.py --server.port 8501 |
| |
|
| | # Docker |
| | docker-build: |
| | docker build -t cascade:latest . |
| |
|
| | docker-up: |
| | docker-compose up -d |
| |
|
| | docker-down: |
| | docker-compose down |
| |
|
| | docker-logs: |
| | docker-compose logs -f |
| |
|
| | # Deployment |
| | deploy-railway: |
| | @echo "Deploying to Railway..." |
| | @echo "1. Install Railway CLI: npm install -g @railway/cli" |
| | @echo "2. Login: railway login" |
| | @echo "3. Initialize: railway init" |
| | @echo "4. Deploy: railway up" |
| | railway up |
| |
|
| | deploy-fly: |
| | @echo "Deploying to Fly.io..." |
| | @echo "1. Install Fly CLI: curl -L https://fly.io/install.sh | sh" |
| | @echo "2. Login: fly auth login" |
| | @echo "3. Launch: fly launch" |
| | @echo "4. Deploy: fly deploy" |
| | fly deploy |
| |
|
| | # ML Training |
| | train: |
| | PYTHONPATH=src poetry run python -m ml.training.train --dataset easy2hard --epochs 5 |
| |
|
| | export-onnx: |
| | PYTHONPATH=src poetry run python -m ml.export.convert_to_onnx |
| |
|
| | # Cleanup |
| | clean: |
| | rm -rf .pytest_cache |
| | rm -rf __pycache__ |
| | rm -rf src/**/__pycache__ |
| | rm -rf .coverage |
| | rm -rf htmlcov |
| | rm -rf dist |
| | rm -rf *.egg-info |
| | find . -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true |
| | find . -type f -name "*.pyc" -delete 2>/dev/null || true |
| |
|