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.
