ALLSmartLLM verwenden
OpenAI-kompatible Inference-API auf eigener Hardware in Österreich. Wenn Ihr Code mit der OpenAI-API spricht, spricht er auch mit uns. Sie tauschen die Basis-URL und den Key, sonst nichts.
In drei Schritten
- Konto anlegen unter allsmartllm.com/de/login. Nach der E-Mail-Bestätigung schalten wir das Konto frei; Sie bekommen eine Nachricht, sobald es so weit ist. Jedes neue Konto startet mit 10 Millionen Tokens gratis.
- API-Key erzeugen in der Zentrale unter Keys. Keys beginnen mit
sk-allsmartllm-und werden nur einmal angezeigt. - Ersten Request senden:
curl https://allsmartllm.com/v1/chat/completions \ -H "Authorization: Bearer sk-allsmartllm-…" \ -H "Content-Type: application/json" \ -d '{ "model": "mid", "messages": [{"role": "user", "content": "Hallo!"}] }'
Basis-URL und Authentifizierung
| Basis-URL | https://allsmartllm.com/v1 |
|---|---|
| Authentifizierung | Authorization: Bearer sk-allsmartllm-… |
| Format | JSON, wie bei OpenAI |
Der Key gehört in den Header, nie in eine URL. Behandeln Sie ihn wie ein Passwort: nicht in Code einchecken, nicht in Client-Anwendungen ausliefern. Kompromittierte Keys löschen Sie in der Zentrale und legen einen neuen an.
OpenAI-kompatibel: Ihr bestehendes Setup
Sie brauchen keine eigene Bibliothek. Jedes OpenAI-SDK funktioniert mit zwei geänderten Werten.
Python
from openai import OpenAI
client = OpenAI(
base_url="https://allsmartllm.com/v1",
api_key="sk-allsmartllm-…",
)
antwort = client.chat.completions.create(
model="mid",
messages=[{"role": "user", "content": "…"}],
)
print(antwort.choices[0].message.content)
JavaScript / TypeScript
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://allsmartllm.com/v1",
apiKey: "sk-allsmartllm-…",
});
const antwort = await client.chat.completions.create({
model: "mid",
messages: [{ role: "user", content: "…" }],
});
console.log(antwort.choices[0].message.content);
Andere Werkzeuge (LangChain, LlamaIndex, Continue, Open WebUI, Cursor, …): überall dort, wo Sie eine OpenAI-Basis-URL eintragen können, tragen Sie https://allsmartllm.com/v1 ein.
Modelle und Aliase
Sie können in model eine konkrete Modell-ID angeben oder einen Alias. Ein Alias ist ein stabiler Rollenname wie mid oder coder. Wir lösen ihn serverseitig auf das Modell auf, das diese Rolle gerade am besten erfüllt. Wenn wir ein Modell tauschen oder die Hardware wechseln, ändert sich in Ihrem Code nichts.
Unsere Empfehlung: Verwenden Sie Aliase. Konkrete Modell-IDs sind für den Fall gedacht, dass Sie ein bestimmtes Modell reproduzierbar festnageln müssen.
Welcher Alias wofür
| Alias | Wofür | Denkt nach? |
|---|---|---|
frontier | Die schwersten Aufgaben: mehrstufiges Reasoning, lange Dokumente, Bildanalyse. Unser stärkstes Modell. | ja |
mid | Der Allrounder für den Alltag. Text, Tools, Bilder. Dauerhaft geladen, antwortet sofort. | ja |
worker | Dasselbe Modell wie mid, aber ohne Reasoning: für Pipelines, Batch-Verarbeitung, alles, wo Durchsatz zählt und die Aufgabe klar ist. | nein |
coder | Code schreiben, umbauen, erklären. Spezialisiert auf agentisches Programmieren. | – |
vision | Bild- und Videoeingabe mit Reasoning. | ja |
fast | Klassifikation, Routing, Ja/Nein- und A/B/C-Entscheidungen. Sehr schnell, kein Reasoning. | nein |
swift | Dasselbe schnelle Modell wie fast, aber mit Reasoning, für Entscheidungen, die eine kurze Überlegung brauchen. | ja |
judge | Bewerten, benoten, vergleichen: Antworten anderer Modelle beurteilen, Rubriken anwenden. | ja |
embed | Embedding-Vektoren für Suche und Ähnlichkeit (nur /v1/embeddings). | – |
clef-flash | Schnelle Entscheidungen statt Text: Lage plus typisierte Fragen, Antwort als Wahrscheinlichkeiten. Nur /v1/systemone. | – |
clef | Wie clef-flash, größeres Modell für genauere Entscheidungen. Nur /v1/systemone. | – |
„Denkt nach“ bezeichnet den Standard; Sie können ihn pro Request umschalten (siehe unten).
Die aktuelle Liste holen Sie jederzeit live:
curl https://allsmartllm.com/v1/aliases -H "Authorization: Bearer sk-allsmartllm-…"
curl https://allsmartllm.com/v1/models -H "Authorization: Bearer sk-allsmartllm-…"
In /v1/models erscheinen Aliase zusätzlich zu den echten Modellen, erkennbar an "owned_by": "smartllm-alias". /v1/aliases ist eine Erweiterung von uns und nicht Teil der OpenAI-Spezifikation.
Welche Modelle hinter den Aliasen stehen, mit Lizenz, Quantisierung, Kontextlänge und einem unabhängigen Qualitätsindex, zeigt die Modelltabelle.
Entscheidungsmodelle (kein Chat)
Zwei Modelle in der Tabelle arbeiten grundsätzlich anders als alle anderen: clef-flash und clef. Sie erzeugen keinen Text. Man schickt ihnen keinen Prompt und bekommt keine Antwort in Sätzen zurück.
Stattdessen geben Sie eine Lage (state) und bis zu 64 typisierte Fragen. Das Modell liest beides in einem einzigen Durchlauf und liefert je Antwortoption eine Wahrscheinlichkeit. Das ist schnell (eine Entscheidung mit drei Fragen dauert rund eine Sekunde), und das Ergebnis ist maschinenlesbar, ohne dass Sie es aus einem Satz herausparsen müssen.
Eigener Endpunkt: POST /v1/systemone. An /v1/chat/completions antworten diese Modelle mit 400, und umgekehrt weist /v1/systemone gewöhnliche Chat-Modelle ab.
Drei Fragetypen
noul: wahr oder falsch. Die Antwort ist eine Wahrscheinlichkeit für „wahr“.choice: benannte Optionen. Die Antwort nennt die wahrscheinlichste und gibt die Verteilung über alle.score: geordnete Stufen. Die Antwort ist ein Zahlenwert zwischen den Stufen plus die Verteilung.
instructions ist bei jeder Frage Pflicht. Bilder sind möglich (base64, PNG/JPEG/WebP), keine URLs.
curl https://allsmartllm.com/v1/systemone \
-H "Authorization: Bearer sk-allsmartllm-…" \
-H "Content-Type: application/json" \
-d '{
"model": "clef-flash",
"state": "Kunde will Rechnung storniert haben",
"questions": {
"intent": {"type": "choice", "instructions": "Was will der Kunde?",
"criteria": {"storno": "Stornierung", "frage": "Allgemeine Frage"}},
"dringlichkeit": {"type": "score", "instructions": "Wie dringend?",
"criteria": ["kann warten", "diese Woche", "heute"]},
"rechnung": {"type": "noul", "instructions": "Geht es um eine Rechnung?"}
}
}'
{
"model": "clef-flash",
"answers": {
"intent": {"type": "choice", "choice": "storno",
"probabilities": {"storno": 0.9898, "frage": 0.0102},
"confidence": 0.9179},
"dringlichkeit": {"type": "score", "score": 1.23,
"legend": {"0": "kann warten", "1": "diese Woche", "2": "heute"},
"probabilities": {"0": 0.2777, "1": 0.2180, "2": 0.5043},
"confidence": 0.0597},
"rechnung": {"type": "noul", "noul": 0.9702}
},
"usage": {"input_tokens": 305, "output_tokens": 0}
}
Zu confidence: das ist nicht die höchste Wahrscheinlichkeit, sondern ein eigenes Maß dafür, wie stark sich die Verteilung auf eine Option konzentriert. Im Beispiel unten hat die wahrscheinlichste Stufe 0,50, die confidence aber nur 0,06. Die Antwort ist also wenig festgelegt, obwohl eine Option vorne liegt.
Abgerechnet wird nur die Eingabe: output_tokens ist in jeder Antwort 0.
Reasoning („Thinking“) steuern
Viele unserer Modelle können vor der Antwort nachdenken. Das verbessert schwierige Aufgaben und kostet bei einfachen nur Zeit und Tokens. Jeder Alias hat einen sinnvollen Standard (Tabelle oben); pro Request überstimmen Sie ihn so:
{
"model": "mid",
"messages": [{"role": "user", "content": "…"}],
"chat_template_kwargs": {"enable_thinking": false}
}
Wir verstehen drei Schreibweisen gleichwertig: chat_template_kwargs.enable_thinking (vLLM), enable_thinking auf oberster Ebene und think (Ollama-Stil). Ihr Signal gewinnt immer gegen den Alias-Standard.
Zwei Dinge, die man wissen muss:
max_tokensumfasst das Denken. Ein Modell, das 1500 Tokens nachdenkt und dann 500 Tokens antworten soll, brauchtmax_tokensvon mindestens 2000. Zu knapp gesetzt bekommen Sie leerencontentzurück, weil das Budget im Reasoning aufgebraucht wurde.- Der Denkblock kommt im Feld
reasoningder Antwort zurück, getrennt vomcontent. Beim Streaming ebenso, indelta.reasoning.
Für Aufgaben ohne Denkbedarf nehmen Sie gleich den passenden Alias (worker, fast), dann müssen Sie nichts setzen.
Streaming
Wie bei OpenAI: "stream": true liefert Server-Sent Events, jedes data:-Ereignis ist ein JSON-Chunk mit delta. Das letzte Ereignis vor [DONE] trägt usage.
stream = client.chat.completions.create(
model="mid",
messages=[{"role": "user", "content": "…"}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="", flush=True)
Bilder, Tools, strukturierte Ausgabe
Bilder senden Sie als image_url-Inhaltsblock, als URL oder Base64-Data-URL. Geeignet: frontier, mid, vision.
{
"model": "vision",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "…"},
{"type": "image_url", "image_url": {"url": "data:image/png;base64,…"}}
]
}],
"max_tokens": 1000
}
Tool-Calling (Function Calling) funktioniert mit dem OpenAI-Schema (tools, tool_choice, Antworten mit tool_calls). Unterstützt von frontier, mid, worker, coder, vision, fast, swift, judge. Welche Fähigkeit ein Modell hat, steht in /v1/models im Feld capabilities.
Strukturierte Ausgabe über response_format, also json_object oder json_schema mit Schema. Für Entscheidungen mit festen Optionen ist die Kombination fast + JSON-Schema mit enum gedacht: schnell, und die Antwort ist garantiert eine der erlaubten.
{
"model": "fast",
"messages": [{"role": "user", "content": "…"}],
"response_format": {
"type": "json_schema",
"json_schema": {
"name": "kategorie",
"schema": {
"type": "object",
"properties": {
"kategorie": {"type": "string", "enum": ["a", "b", "c"]}
},
"required": ["kategorie"]
}
}
}
}
Embeddings
curl https://allsmartllm.com/v1/embeddings \
-H "Authorization: Bearer sk-allsmartllm-…" \
-H "Content-Type: application/json" \
-d '{"model": "embed", "input": ["…", "…"]}'
input nimmt einen String oder eine Liste. Chat-Modelle auf diesem Endpunkt antworten mit 400.
Priorität und Warteschlange
Unsere Modelle laufen auf begrenzter Hardware; bei Last stellen wir Anfragen kurz an, statt sie abzuweisen. Mit dem Header X-Priority sagen Sie uns, was eilt:
| Header | Bedeutung |
|---|---|
X-Priority: high | Interaktiv, ein Mensch wartet. Wird bevorzugt. |
| (nichts) | Normal. |
X-Priority: low | Batch, darf warten. Rückt in der Warteschlange nach hinten. |
Wer seine Hintergrundlast als low kennzeichnet, bekommt für seine interaktiven Anfragen merklich bessere Antwortzeiten. Es ist dieselbe Hardware.
Fehler
| Status | Bedeutung | Was tun |
|---|---|---|
401 | Key fehlt oder ist ungültig. | Header prüfen; Key in der Zentrale kontrollieren. |
400 | Anfrage passt nicht zum Modell (z. B. Bild an ein Textmodell, Chat-Modell an /v1/embeddings). | Fähigkeiten in /v1/models nachsehen. |
404 | Modell oder Alias unbekannt. | /v1/models oder /v1/aliases abfragen. |
429 | Ihr Kontingent oder Rate-Limit ist erreicht, oder die Warteschlange ist voll. Retry-After sagt, wann es weitergeht. | Warten und wiederholen; bei Dauerbedarf melden. |
503 | Das Modell ist gerade nicht erreichbar (Neustart, Wartung). | Kurz später erneut versuchen. Bei frontier springt in der Regel automatisch ein Ersatzmodell ein. |
Ob gerade etwas klemmt, sehen Sie ohne Login auf der Statusseite. Dort steht auch die Verfügbarkeit der letzten 30 Tage, gemessen und nicht behauptet.
Jede Antwort trägt einen Header X-Request-ID. Wenn Sie uns ein Problem melden, schicken Sie ihn mit, damit finden wir den Vorgang.
Was wir speichern und was nicht
Über die API wird kein Inhalt gespeichert: weder Ihre Prompts noch die Antworten. Geloggt werden Zeitpunkt, Modell, Tokenzahlen, Dauer und Statuscode, also das, was auf einer Rechnung stehen muss. Die vollständige Liste steht auf der Startseite; sie stammt aus dem Log-Schema, nicht aus einem Werbetext.
Alles läuft auf eigener Hardware in Österreich. Es gibt keinen Dritten, an den Ihre Daten weitergereicht werden.
Wer noch einen Schritt weitergehen will: mit dem Feld "privacy": {"mode": "pseudonymize"} im Request erkennen wir personenbezogene Daten (Namen, Adressen, IBANs, …) und ersetzen sie durch Platzhalter, bevor das Modell den Text sieht; in der Antwort setzen wir die Originale wieder ein. "mode": "mask" maskiert dauerhaft, ohne Rückersetzung. Kostet einen kleinen Aufschlag auf die Eingabe-Tokens.
Preise
Abgerechnet wird pro Million Tokens, getrennt nach Eingabe und Ausgabe, nach Modellkategorie:
| Kategorie | Eingabe | Ausgabe | Typische Aliase |
|---|---|---|---|
| Reasoning | 0,75 € | 3,00 € | |
| Multimodal | 0,75 € | 3,00 € | judge |
| Code | 0,50 € | 2,00 € | coder |
| Standard | 0,50 € | 2,00 € | frontier, mid, worker, vision, embed |
| Schnell | 0,25 € | 1,00 € | fast, swift |
| Entscheidung | 0,25 € | 1,00 € |
Die 10 Millionen Gratis-Tokens jedes neuen Kontos werden zuerst verbraucht. Ihren Stand sehen Sie in der Zentrale unter „Nutzung“, die Rechnungsadresse pflegen Sie dort ebenfalls.
Reasoning-Tokens zählen als Ausgabe. Noch ein Grund, für einfache Aufgaben worker oder fast zu nehmen.
Ausprobieren ohne Code
In der Zentrale gibt es die Workbench: Prompts gegen mehrere Modelle gleichzeitig laufen lassen, Antworten und Kosten vergleichen. Gespeichert wird dort nichts.
Hilfe
Fragen, Probleme, ein Modell, das Ihnen fehlt: Support. Sie erreichen dort die Person, die das System gebaut hat, keine Warteschleife.