Files
llm-monitor/requirements.txt
ducoterra 48bc92b9af
Build and Push Container / build-and-push (push) Successful in 38s
initial import: read-only gufo + vLLM dashboard
Single-file FastAPI proxy plus a no-CDN vanilla-JS page for watching a gufo
server and a vLLM server side by side: one Prometheus parser (class Prom) with
per-engine field maps, measured Δcounter/Δt rates for engines that export no
rate gauge, and strict read-only GET-only routing. Engines are opt-in via
*_BASE_URL — unset means no panel, no poll, and a 404 {"configured": false}
without dialling.

Includes the container image and CI so the dashboard can be deployed as an
image rather than a checkout:

- Containerfile: uv-locked two-stage build on python:3.14-slim, non-root
  (uid 10001), binds 8090 (8000 is vLLM's port in this fleet), healthcheck on
  /api/config so a dead engine never marks the dashboard unhealthy. No frontend
  build stage — static/index.html is bundler-free by design and is copied as-is.
- .gitea/workflows/build-and-push.yml: publishes
  gitea.reeseapps.com/Experimental/llm-monitor on main + release tags.

114 tests, no network and no real engines required.

LLM-Generated: true
2026-10-16 12:49:45 -04:00

81 lines
1.9 KiB
Plaintext

# Generated from uv.lock — DO NOT EDIT BY HAND.
# uv lock # after changing pyproject.toml
# uv export --no-dev --no-hashes > requirements.txt
# uv users do not need this file: 'uv sync' installs straight from uv.lock.
# It exists so a host without uv can still: pip install -r requirements.txt
# This file was autogenerated by uv via the following command:
# uv export --no-dev --no-hashes
annotated-doc==0.0.5
# via fastapi
annotated-types==0.8.0
# via pydantic
anyio==4.15.1
# via
# httpx
# starlette
# watchfiles
certifi==2026.7.22
# via
# httpcore
# httpx
click==8.5.0
# via uvicorn
exceptiongroup==1.3.1 ; python_full_version < '3.11'
# via anyio
fastapi==0.143.2
# via llm-monitor
h11==0.16.0
# via
# httpcore
# uvicorn
httpcore==1.0.9
# via httpx
httptools==0.9.0
# via uvicorn
httpx==0.28.1
# via llm-monitor
idna==3.20
# via
# anyio
# httpx
opentelemetry-api==1.45.1
# via fastapi
pydantic==2.14.1
# via fastapi
pydantic-core==2.50.1
# via pydantic
python-dotenv==1.2.4
# via uvicorn
pyyaml==6.0.3
# via uvicorn
starlette==1.7.0 ; python_full_version < '3.11'
# via fastapi
starlette==1.8.0 ; python_full_version >= '3.11'
# via fastapi
typing-extensions==4.16.0
# via
# anyio
# exceptiongroup
# fastapi
# opentelemetry-api
# pydantic
# pydantic-core
# starlette
# typing-inspection
# uvicorn
typing-inspection==0.4.4
# via
# fastapi
# pydantic
uvicorn==0.54.0
# via llm-monitor
uvloop==0.23.0 ; platform_python_implementation != 'PyPy' and sys_platform != 'cygwin' and sys_platform != 'win32'
# via uvicorn
watchfiles==1.3.0
# via uvicorn
websockets==16.1.1 ; python_full_version < '3.11'
# via uvicorn
websockets==17.2 ; python_full_version >= '3.11'
# via uvicorn