Created bymario-alka.dePowered bygodcore.denoob2claw.detricoma.de
REST API v1

LLM Benchmark API

Stammdaten abrufen und verwalten, Performance- oder Harness-Ergebnisse strukturiert uebertragen.

API derzeit nicht oeffentlich

Die Schnittstelle befindet sich aktuell in einer internen Vorabphase. Zugriff und API-Tokens werden noch nicht oeffentlich vergeben. Endpunkte, Datenfelder und Antwortformate koennen sich bis zur offiziellen Freigabe noch aendern.

Authentifizierung

GET-Abfragen sind oeffentlich. POST, PUT und DELETE benoetigen ein Bearer-Token mit Schreibrechten. Der Token gehoert in den HTTP-Header und niemals in die URL.

Authorization: Bearer DEIN_TOKEN
Content-Type: application/json

1. Hersteller

GET    /api/v1/manufacturers
GET    /api/v1/manufacturers/qwen
POST   /api/v1/manufacturers
PUT    /api/v1/manufacturers/qwen
DELETE /api/v1/manufacturers/qwen
{
  "slug": "qwen",
  "name": "Qwen (Alibaba)",
  "description": "Qwen-Modellfamilie von Alibaba.",
  "huggingface_url": "https://huggingface.co/Qwen",
  "website_url": "https://qwen.ai"
}

2. KI-Modelle

GET    /api/v1/models
GET    /api/v1/models/qwen3-32b
GET    /api/v1/models?manufacturer=qwen
POST   /api/v1/models
PUT    /api/v1/models/qwen3-32b
DELETE /api/v1/models/qwen3-32b
{
  "slug": "qwen3-32b",
  "manufacturer_slug": "qwen",
  "name": "Qwen3 32B",
  "parameter_count": "32B",
  "architecture": "Dense",
  "license_name": "Apache 2.0",
  "model_url": "https://huggingface.co/Qwen/Qwen3-32B"
}

3. Grafikkarten

GET    /api/v1/gpus
GET    /api/v1/gpus/rtx-5090
POST   /api/v1/gpus
PUT    /api/v1/gpus/rtx-5090
DELETE /api/v1/gpus/rtx-5090
{
  "slug": "rtx-5090",
  "vendor": "NVIDIA",
  "name": "GeForce RTX 5090",
  "memory_gb": 32
}

4. CPUs

GET    /api/v1/cpus
GET    /api/v1/cpus/ryzen-ai-max-395
POST   /api/v1/cpus
PUT    /api/v1/cpus/ryzen-ai-max-395
DELETE /api/v1/cpus/ryzen-ai-max-395
{
  "slug": "ryzen-ai-max-395",
  "vendor": "AMD",
  "name": "Ryzen AI Max+ 395",
  "cores": 16,
  "threads": 32
}

5. Performancebenchmark uebertragen

GPU und CPU werden per Slug zugeordnet. Anzahl und RAM bilden automatisch ein wiederverwendbares Hardwareprofil. Beim Anlegen liefert die API immer die numerische Benchmark-ID, den Slug und den Status zurueck.

POST /api/v1/results
{
  "model_slug": "qwen3-32b",
  "gpu_slug": "rtx-5090",
  "gpu_count": 2,
  "cpu_slug": "epyc-9654",
  "cpu_count": 1,
  "ram_gb": 256,
  "benchmark_type": "performance",
  "model_server_type": "vllm",
  "runtime_version": "0.10.0",
  "start_path": "/home/godcore/bin/start-vllm-qwen",
  "configuration_parameters": {
    "model": "Qwen/Qwen3-32B",
    "tensor_parallel_size": 2,
    "gpu_memory_utilization": 0.92,
    "max_model_len": 32768,
    "enforce_eager": false
  },
  "quantization": "FP8",
  "concurrency": 8,
  "prefill_tokens_s": 2450.7,
  "generation_tokens_s": 184.3,
  "ttft_ms": 126.4,
  "duration_ms": 60000
}

Antwort:

{
  "data": {
    "ID": 123,
    "slug": "run-20260722-120000-a1b2c3",
    "status": "published"
  }
}

6. Harnessbenchmark uebertragen

POST /api/v1/results
{
  "model_slug": "qwen3-32b",
  "gpu_slug": "rtx-5090",
  "gpu_count": 2,
  "cpu_slug": "epyc-9654",
  "cpu_count": 1,
  "ram_gb": 256,
  "benchmark_type": "harness",
  "model_server_type": "llamacpp",
  "runtime_version": "b6200",
  "start_path": "/home/godcore/bin/start-llamacpp.sh",
  "configuration_parameters": {
    "model": "/models/qwen3.gguf",
    "gpu_layers": 99,
    "context_size": 32768,
    "threads": 16
  },
  "points_achieved": 87,
  "points_max": 100,
  "duration_ms": 325000,
  "tasks": [
    {"name":"Recherche","success":true,"points":20,"duration_ms":42000},
    {"name":"Codeaenderung","success":true,"points":30,"duration_ms":81000}
  ]
}

model_server_type bezeichnet den verwendeten Modellserver, beispielsweise vllm oder llamacpp. start_path enthaelt den aufgerufenen Startpfad. In configuration_parameters koennen die tatsaechlichen Start- und Modellparameter als JSON-Objekt abgelegt werden. Das bisherige Eingabefeld runtime bleibt als Alias fuer model_server_type kompatibel.

7. Suchen, aktualisieren und loeschen

GET    /api/v1/results/123
GET    /api/v1/results/run-20260722-120000-a1b2c3
GET    /api/v1/results?search=qwen
PUT    /api/v1/results/123
DELETE /api/v1/results/123

Bei PUT wird derselbe vollstaendige JSON-Aufbau wie beim Anlegen gesendet. Aktualisieren und Loeschen sind nur mit einem Bearer-Token erlaubt. Ein Benutzer darf eigene Benchmarks verwalten; der Admin darf alle Benchmarks verwalten. DELETE blendet den Datensatz sicher aus.

8. Ausgaben und Filter

GET /api/v1/results?type=performance
GET /api/v1/results?manufacturer=qwen
GET /api/v1/results?model=qwen3-32b
GET /api/v1/results?gpu=GeForce%20RTX%205090
GET /api/v1/results?cpu=EPYC%209654
GET /api/v1/results?ram=128
GET /api/v1/results?search=Qwen
GET /api/v1/results?mine=1

Die Ausgabe enthaelt Hersteller, Modell, GPU inklusive Anzahl, CPU inklusive Anzahl, RAM, Runtime und die typabhaengigen Messwerte. Harness-Details enthalten zusaetzlich die Aufgabenliste.