File size: 2,550 Bytes
cd4eb30 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
.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
|