All notable changes to this project are documented in this file.
The format is based on Keep a Changelog 1.1.0, and this project adheres to Semantic Versioning.
LICENSE— MIT, the license the README badge and link already claimed.docs/README.md— documentation index.docs/benchmarks.md— committed baseline figures, exact rerun commands forevals/benchmark.py,evals/load_test.pyandtriton/perf_analyzer.sh, and an explicit note on the provenance metadata missing from the committed results.docs/configuration.md— environment variables actually read by code, which.env.templateentries nothing in the repo consumes, YAML file ownership, and worked single-model / multi-model / multi-backend examples.docs/autoscaling.md— canonical DCGM-driven HPA path, Prometheus Adapter dependency, apply order, and tuning guidance.docs/testing.md— test-to-module coverage map, uncovered areas, and thegpumarker convention.results/README.md— required metadata schema for future benchmark artifacts.SECURITY.mdandCODE_OF_CONDUCT.md(Contributor Covenant 2.1).CHANGELOG.md(this file).[project.optional-dependencies] devinpyproject.toml, whichpip install -e ".[dev]"had always required but never had.- Release process section in
CONTRIBUTING.md.
- README rewritten for accuracy: real project-structure tree, corrected environment variable table, Quick Start matching the actual Compose files and gateway port, Kubernetes commands referencing manifests that exist, and a development section matching CI exactly.
- README reframed from "production LLM serving infrastructure" to a reference stack, and the portfolio framing reworded to remove any implied employer affiliation.
- README mermaid diagram now uses
<br/>line breaks, which GitHub renders, instead of literal\n. docs/architecture.mdcorrected to reference files that exist and to describe the gateway's actual single-backend behaviour.pyproject.tomlbuild-backendfixed tosetuptools.build_meta; the previous value was not a real setuptools entry point.deploy/docker-compose.ymlPrometheus mount now points atmonitoring/prometheus/prometheus.yml..gitignorenarrowed fromresults/toresults/load_tests/so committed benchmark artifacts and documentation are tracked.
- Benchmark takeaway in the README said "~25% lower TTFT" while the committed
results/baseline_bench_2026-06.jsonrecords ~31% (142 ms -> 98 ms). Both now say 31%.
autoscaling/hpa.yaml, a duplicate ofkubernetes/hpa-dcgm.yamlthat used a metric name the DCGM Exporter does not publish.kubernetes/hpa-dcgm.yamlis the single canonical HPA manifest.
- FastAPI gateway (
api/) with OpenAI-compatiblePOST /v1/chat/completions,GET /v1/models,GET /health, andStructuredLoggingMiddlewareaddingX-Request-IDandX-Backendheaders. - vLLM integration: launcher (
vllm/server.py), in-process OpenAI-compatible server (vllm/openai_server.py), client (vllm/client.py), and batching configuration reference. - Triton integration: Python-backend model repository for LLaMA 3, client
wrapper, and a
perf_analyzerbenchmark script. - Ray Serve deployment and multi-model traffic-splitting router.
- BentoML packaging service and build script.
- Kubernetes manifests: vLLM and Triton Deployments plus Services, NGINX Ingress, DCGM Exporter DaemonSet, and a DCGM-driven HPA.
- Prometheus scrape configuration and a Grafana GPU serving dashboard.
- Benchmark harnesses (
evals/benchmark.py,evals/load_test.py) and the committed baselineresults/baseline_bench_2026-06.json. - Docker Compose stacks at the repository root and under
deploy/. - Test suite (
tests/) and a GitHub Actions CI workflow runningruffpluspytestwith--cov-fail-under=80.