Quickstart
In 30 Sekunden loslegen
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://ai.weareweblabs.com/v1",
apiKey: "sk-dein-api-key",
});
const res = await client.chat.completions.create({
model: "qwen3.5:4b",
messages: [{ role: "user", content: "Schreib ein Rezept für Tiramisu" }],
});
console.log(res.choices[0].message.content);
Authentifizierung
API-Key
Header: x-api-key: sk-... oder Authorization: Bearer sk-... · Keys verwalten im Admin-Dashboard.
Modelle
Verfügbare Modelle
WL GPU = GTX 1660 Super (Büro-PC) · WL CPU = VPS Fallback
Endpunkte
API-Referenz
POST
/v1/chat/completions
OpenAI-kompatibler Chat-Endpunkt. Unterstützt
stream: true für Echtzeit-Streaming.POST
/v1/completions
Legacy Completions-Endpunkt. Wird intern in Chat-Format konvertiert.
GET
/health
Status beider Backends (GPU + CPU), Queue-Auslastung und verfügbare Modelle.
GET
/benchmark
Live-Performance-Test aller Modelle mit und ohne Thinking-Modus.
GET
/admin
Dashboard zur Verwaltung von API-Keys und Nutzungsstatistiken.
Parameter
Request-Body
* Nur bei Modellen mit Thinking-Fähigkeit relevant. Bei qwen3.5:4b funktioniert off normal. Bei den -hf1/-hf2-Modellen (Hugging-Face-Spaces, llama.cpp) gibt es technisch nur einen binären Schalter – jedes Level außer off aktiviert Thinking gleichermaßen, das Token-Budget wird lediglich je nach Level unterschiedlich groß gewählt.
Modell-Auswahl
Welches Modell für welchen Zweck?
qwen3.5:4b — Text + Bild
Multimodal: verarbeitet Text und Bilder. Bilder als Base64 im content-Array übergeben.
{ "model": "qwen3.5:4b",
"messages": [{
"role": "user",
"content": [{"type":"text","text":"Was ist auf dem Bild?"},
{"type":"image_url","image_url":{"url":"data:image/jpeg;base64,..."}}]
}] }