blob: d0dae5ce7515c3f968ff66658b583ca8d7106229 [file]
# llmao — dev workflow. Uses UV (https://docs.astral.sh/uv/) to manage a local
# .venv so it works on PEP 668 "externally managed" systems without touching
# the system Python. Requires `uv` on PATH.
#
# Local run needs config.yaml (from config.yaml.example) and, for OAuth,
# TLS certs under certs/ — see certs/README.md.
.PHONY: install run test proxy db build clean thirdparty
install:
uv sync
# System PostgreSQL: create llmao/litellm role+db, prisma generate + db push.
db: install
uv run python bin/setup_litellm_db.py
# Vendor Bootstrap + icons into static/ (see bin/fetch-thirdparty.sh).
thirdparty:
./bin/fetch-thirdparty.sh
run: install
uv run python main.py
test: install
uv run pytest tests/ -q
# Run the LiteLLM proxy. Requires litellm.yaml + model_list.yaml (from *.example).
proxy: install
@test -f litellm.yaml || (echo "Missing litellm.yaml — copy litellm.yaml.example" >&2; exit 1)
@test -f model_list.yaml || (echo "Missing model_list.yaml — copy model_list.yaml.example" >&2; exit 1)
uv run litellm --config litellm.yaml
# Build the production Docker image (optional; systemd is the preferred deploy).
build:
docker build -t llmao:latest .
clean:
rm -f llmao-state.json demo-state.json *.tmp
find . -name __pycache__ -type d -prune -exec rm -rf {} +
rm -rf .venv