Eine Basis-URL, ein API Key, alle Dienste: Sprachmodelle, Embeddings, Reranking, Transkription, Websuche und Bildgenerierung - OpenAI-, Anthropic- und A1111-kompatibel. Bestehende SDKs und Tools funktionieren unverändert.
Basis-URL
https://ai.dev.wyna.info/v1
Alle Endpunkte laufen über diese eine Adresse. Anthropic-SDKs nutzen als Basis-URL https://ai.dev.wyna.info (das SDK ergänzt /v1/messages selbst). Die direkte Gateway-Adresse https://llm.ai.dev.wyna.info/v1 bleibt für die Modell-Endpunkte ebenfalls gültig.
Authentifizierung
Erstelle einen persönlichen API Key in deinem Konto (Mein Konto → API Keys) und übergib ihn als Bearer-Token:
Authorization: Bearer sk-...your-key...
Behandle den Key wie ein Passwort. Jeder Aufruf zählt auf dein Guthaben bzw. dein Monatslimit - dieselbe Abrechnung wie im Chat (siehe Preise).
Endpunkte im Überblick
| Endpunkt | Dienst | Format |
|---|---|---|
POST /v1/chat/completions | Sprachmodelle (inkl. Streaming, Vision, Tools) | OpenAI |
POST /v1/messages | Sprachmodelle | Anthropic |
GET /v1/models | Aktuelle Modell-Liste | OpenAI |
POST /v1/embeddings | Text-Embeddings | OpenAI |
POST /v1/rerank | Reranking | Jina/Cohere |
POST /v1/audio/transcriptions | Transkription (Speech-to-Text) | OpenAI |
GET/POST /v1/search | Websuche | Wyna |
POST /v1/txt2img | Bildgenerierung (auch /sdapi/v1/txt2img für A1111-Clients) | A1111 |
Modelle
Übergib den Modellnamen exakt so im Feld model. Die aktuelle Liste liefert GET /v1/models.
Stabile Modell-Tags (für Integrationen empfohlen): wyna-pro (unser jeweils stärkstes) und wyna-lite (unser schlankes, günstiges) bleiben stabil - wir aktualisieren das dahinterliegende Modell im Hintergrund, deine Konfiguration läuft unverändert weiter. Abgerechnet wird jeweils zum Tarif des aktuell hinterlegten Modells. Zusätzlich ist jedes Modell auch direkt unter seinem konkreten Modell-Tag ansprechbar.
| model | Beschreibung |
|---|---|
wyna-pro | Alias: immer unser stärkstes Modell (empfohlen) - bei uns gehostet |
wyna-lite | Alias: unser schlankes, günstiges Modell - bei uns gehostet |
deepseek-v4-flash | MoE-Modell mit 1 Mio. Token Kontext - stark in Analyse, Code und grossen Dokumenten - bei uns gehostet |
qwen36-35b | Schnelles MoE-Modell mit Bildverständnis - effizient für Alltagsaufgaben - bei uns gehostet |
mistral-small-4 | Vielseitig, mit Bildverständnis |
kimi-k2.6 | Für anspruchsvolle & agentische Aufgaben |
apertus-70b | Offenes Schweizer Modell (ETH Zürich & EPFL) |
wyna-embed | Wandelt Text in Vektoren für Suche und RAG - BGE-M3 (multilingual, 1024 Dimensionen) |
wyna-rerank | Sortiert Suchtreffer nach Relevanz zur Anfrage - BGE-Reranker-v2-M3 |
wyna-stt-german | Übersetzt gesprochenes Schweizerdeutsch und weitere Sprachen in Deutschen Text - FlixAI Swissgerman |
wyna-stt | Transkribiert Englisch, Deutsch, Französisch, usw. ohne Übersetzung - Whisper Large v3 Turbo |
Schnellstart: Sprachmodelle
curl
curl https://ai.dev.wyna.info/v1/chat/completions \
-H "Authorization: Bearer $WYNA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wyna-pro",
"messages": [{"role": "user", "content": "Sag Hallo auf Schweizerdeutsch."}]
}'
Python (OpenAI-SDK)
# pip install openai
from openai import OpenAI
client = OpenAI(
base_url="https://ai.dev.wyna.info/v1",
api_key="WYNA_API_KEY",
)
resp = client.chat.completions.create(
model="wyna-pro",
messages=[{"role": "user", "content": "Sag Hallo."}],
)
print(resp.choices[0].message.content)
Python (Anthropic-SDK)
# pip install anthropic
from anthropic import Anthropic
client = Anthropic(
base_url="https://ai.dev.wyna.info",
api_key="WYNA_API_KEY",
)
msg = client.messages.create(
model="wyna-pro",
max_tokens=1024,
messages=[{"role": "user", "content": "Sag Hallo."}],
)
print(msg.content[0].text)
Streaming
Ergänze "stream": true (bzw. stream=True im SDK), um Token laufend zu empfangen.
Embeddings, Reranking & Transkription
Die Bausteine hinter Dokumenten-Analyse und Diktat, direkt per API - gehostet auf unserer eigenen Hardware:
# Embeddings (OpenAI-kompatibel)
curl https://ai.dev.wyna.info/v1/embeddings \
-H "Authorization: Bearer $WYNA_API_KEY" -H "Content-Type: application/json" \
-d '{"model": "wyna-embed", "input": "Text zum Einbetten"}'
# Reranking (Jina-kompatibel)
curl https://ai.dev.wyna.info/v1/rerank \
-H "Authorization: Bearer $WYNA_API_KEY" -H "Content-Type: application/json" \
-d '{"model": "wyna-rerank", "query": "Frage", "documents": ["Kandidat 1", "Kandidat 2"]}'
# Transkription (OpenAI-kompatibel; wyna-stt-german = Schweizerdeutsch → Deutsch, wyna-stt = multilingual)
curl https://ai.dev.wyna.info/v1/audio/transcriptions \
-H "Authorization: Bearer $WYNA_API_KEY" \
-F file=@aufnahme.wav -F model=wyna-stt-german
Websuche
Datenschutzfreundliche Suche (Kagi-basiert) für Agents und Integrationen - nur der Suchbegriff verlässt unsere Server:
curl "https://ai.dev.wyna.info/v1/search?q=Suchbegriff&limit=5" \ -H "Authorization: Bearer $WYNA_API_KEY"
Auch als POST mit JSON-Body {"q": "...", "limit": 5}. Antwort: results[] mit title, url, snippet, published sowie related[] (verwandte Suchbegriffe) und cost_chf.
Bildgenerierung
A1111-kompatibel: bestehende A1111-Clients funktionieren mit der Basis-URL https://ai.dev.wyna.info und deinem API Key (als Bearer-Token oder als Basic-Auth-Passwort). Freie Auflösung bis 2 Megapixel, Abrechnung pro Megapixel:
curl https://ai.dev.wyna.info/v1/txt2img \
-H "Authorization: Bearer $WYNA_API_KEY" -H "Content-Type: application/json" \
-d '{"prompt": "a red apple on a wooden table", "width": 1328, "height": 1328, "batch_size": 1}'
Antwort im A1111-Format (images[] als Base64) plus cost_chf. Unterstützte Felder: prompt, negative_prompt, width/height, steps, cfg_scale, batch_size (max. 4), seed.
Limits & Abrechnung
• Abrechnung: nutzungsbasiert in CHF - Tokens, Megapixel, Suchen, Audio-Minuten. Jeder API Key hat einen Modus: Verrechnete Keys (Standard) laufen über dein Prepaid-Guthaben bzw. Monatslimit - erschöpft heisst 402. Abo-Keys nutzen ausschliesslich dein Abo-Kontingent: ohne aktives Abo antworten sie mit 403, bei aufgebrauchtem Kontingent mit 429 bis zur Verlängerung oder einem Upgrade. Im Chat wird mit Abo weiterhin zuerst das Kontingent genutzt, danach optionaler Zusatzverbrauch, danach Guthaben bzw. Monatslimit.
• Rate-Limits: Websuche 30/min, Bildgenerierung 10/min, Sprachmodelle 1.2M Tokens/min - pro Nutzer, grosszügig für Agents bemessen. Abo-Keys haben strengere Limits als verrechnete Keys - für produktive Anwendungen nutze einen verrechneten Key. Bei Überschreitung: 429, kurz warten und erneut versuchen.
• Budgets: pro Nutzer oder Team konfigurierbar - dein Verbrauch ist jederzeit unter Nutzungsdetails einsehbar.