...
Diese Schlüssel ermöglichen es, die bereitgestellten KI-Modelle einfach und sicher in eigenen Anwendungen, Skripten oder Tools einzubinden. Durch die Verwendung von API-Keys wird die Handhabung für Nutzerinnen und Nutzer erleichtert und gleichzeitig ein sicherer Zugang gewährleistet.
Studierende können Zugang zu LiteLLM per Email an den IT Support (it-support@fh-muenster.de) beantragen.
Verfügbare Modelle und Preise
Alle über LiteLLM verfügbaren Modelle (inkl. Kosten) sind hier abrufbar: https://litellm-models.fh-muenster.de/
Videomodelle werden nicht über Token sondern über Videolänge abgerechnet. Hier geht's zu den Preisen für Google's Veo.
Ankündigungen und Änderungen
Abonnieren Sie die FHAI-Mailingliste, um über Ankündigungen und Änderungen rund um das KI-Angebot an der FH Münster informiert zu werden.
Inhalt
01. Anfrage eines LiteLLM Schlüssels
...
- Navigieren Sie zu https://vra02.vmware.fh-muenster.de/ und loggen sich mit Ihrer FH-Kennung und dem zugehörigen Passwort ein.
- Klicken Sie im Service Broker auf "Consume", tippen Sie im Suchfeld "LiteLLM" ein und bestätigen die Eingabe mit drücken der Enter-Taste. Klicken Sie anschließend unter "LiteLLM" auf "Request".
- Klicken Sie auf "Submit".
Das Deployment läuft jetzt automatisch. Sie erhalten nach wenigen Sekunden eine Email mit dem generierten Schlüssel. Diesen können Sie jetzt, solange Sie sich im Netz der FH Münster befinden, verwenden. Geben Sie diesen Schlüssel nicht an Andere weiter.
...
02a) Budgetabfrage
Um Ihre aktuellen Budgetinformationen abzufragen (Maximalbudget und bisheriger Verbrauch) können Sie eine Funktion im vRA benutzen. Aktuell bekommt jeder neue Nutzer ein Budget von 30 USD pro Semester.
- Gehen Sie im Service Broker auf "Deployments", öffnen die Detailansicht Ihres LiteLLM-Deployments und öffnen das Meatballmenü neben "litellmParent".
- Hier können Sie jetzt die Funktion "Budgetabfrage" auswählen. Zukünftig hinzugefügte Funktionen werden auch hier zu finden sein.
- Bestätigen Sie die Sicherheitsabfrage mit "Submit"
...
Für Dozenten: Selbstverwaltung von LiteLLM Zugriffen per Gruppe im myFH-Portal
Sie können in der hochschulweiten Gruppenverwaltung eine Gruppe einrichten lassen. Darüber können die Gruppeninhaberinnen und Gruppeninhaber selbst festlegen, wer LiteLLM nutzen darf, und Personen hinzufügen oder entfernen.
Mitglieder der Gruppe sehen dann im vRA Self-Service-Portal die LiteLLM-Kachel. Dort können sie sich selbst einen API-Key erstellen.
Wie Sie Gruppen verwalten, lesen Sie hier: Meine Gruppen
Mehr Budget für Lehrveranstaltungen und Arbeitsgruppen
Für Forschungs- und Arbeitsgruppen gibt es die Möglichekeit LiteLLM-Keys mit mehr Budget zu erstellen. Wenn das Standardbudget für einen Anwendungsfall nicht ausreichen sollte, können Sie mit der DVZ (it-support@fh-muenster.de) eine Kostenübernahme vereinbaren. Sie stellen den gewünschten Betrag bereit, und wir laden damit das Budget eines LiteLLM-Keys auf.
Newsletter für Ankündigungen und Änderungen
Abonnieren Sie die FHAI-Mailingliste, um über Ankündigungen und Änderungen rund um das KI-Angebot an der FH Münster informiert zu werden.
Inhalt
01. Anfrage eines LiteLLM Schlüssels
01. Anfrage eines LiteLLM Schlüssels
| Anker | ||||
|---|---|---|---|---|
|
- Navigieren Sie zu https://vra02.vmware.fh-muenster.de/ und loggen sich mit Ihrer FH-Kennung und dem zugehörigen Passwort ein.
- Klicken Sie im Service Broker auf "Consume", tippen Sie im Suchfeld "LiteLLM" ein und bestätigen die Eingabe mit drücken der Enter-Taste. Klicken Sie anschließend unter "LiteLLM" auf "Request".
- Klicken Sie auf "Submit".
Das Deployment läuft jetzt automatisch. Sie erhalten nach wenigen Sekunden eine Email mit dem generierten Schlüssel. Diesen können Sie jetzt, solange Sie sich im Netz der FH Münster befinden, verwenden. Geben Sie diesen Schlüssel nicht an Andere weiter.
02. Day 2 Actions
| Anker | ||||
|---|---|---|---|---|
|
02a) Budgetabfrage
Um Ihre aktuellen Budgetinformationen abzufragen (Maximalbudget und bisheriger Verbrauch) können Sie eine Funktion im vRA benutzen. Aktuell bekommt jeder neue Nutzer ein Budget von 30 USD pro Semester.
02b) Budget erweitern
Falls Ihr Initialbudget erschöpft ist können Sie eine Erweiterung des Budgets beantragen.
- Gehen Sie im Service Broker auf "Deployments", öffnen die Detailansicht Ihres LiteLLM-Deployments und öffnen das Meatballmenü neben "litellmParent".
- Hier können Sie jetzt die Funktion "Budget erweitern" auswählen.
- Geben Sie die gewünschte Budgeterweiterung in USD an und bestätigen mit einem Klick auf "Submit".
Ihr Antrag wird dann automatisch an die DVZ geschickt. Sobald der Antrag genehmigt wird, wird die Budgeterweiterung automatisch ausgeführt und Sie bekommen eine Benachrichtigung per Email. Sämtliche Budgeterweiterungen werden zur gleichen Zeit wie die Budget-Resets wieder zurückgesetzt.
03c) Nicht-EU-Modelle
Um Zugriff auf Modelle zu bekommen, die nicht in der EU gehostet werden und damit nicht der Datenschutzgrundverordnung (DSGVO) unterliegen, muss dies erst freigeschaltet werden. Später kann man den Zugriff auf wieder beschränken.
- Gehen Sie im Service Broker auf "Deployments", öffnen die Detailansicht Ihres LiteLLM-Deployments und öffnen das Meatballmenü neben "litellmParent".
- Klicken Sie auf "Request Non EU Models"
- Hier können Sie jetzt die Funktion "Budgetabfrage" auswählen. Zukünftig hinzugefügte Funktionen werden auch hier zu finden sein.
- Bestätigen Sie die Sicherheitsabfrage mit Lesen Sie den Datenschutzhinweis und bestätigen Sie mit Klick auf
- "Submit"
- Sollten Sie ihren Zugriff wieder einschränken wollen, nutzen Sie die Funktion "EU Models Only"
Sie erhalten daraufhin eine Email mit Ihren aktuellen Budgetinformationen.
02b) Budget erweitern
Falls Ihr Initialbudget erschöpft ist können Sie eine Erweiterung des Budgets beantragen.
- Gehen Sie im Service Broker auf "Deployments", öffnen die Detailansicht Ihres LiteLLM-Deployments und öffnen das Meatballmenü neben "litellmParent".
- Hier können Sie jetzt die Funktion "Budget erweitern" auswählen.
- Geben Sie die gewünschte Budgeterweiterung in USD an und bestätigen mit einem Bestätigen Sie mit
- Klick auf "Submit"
...
- Navigieren Sie zu https://litellm.fh-muenster.de/
- In der Swagger UI können Sie die möglichen Endpunkte einsehen und Details zu der jeweiligen Nutzung einsehen.
- Wenn Sie gewisse Endpunkte testen möchten, können Sie sich unter "Authorize" mit ihrem LiteLLM Key authorisieren. Sie sind als Nutzer nicht für alle Endpunkte authorisiert.
03b) Chat completion Prompts
- Prompts an die verschiedenen LLM Modelle machen Sie an den Endpunkt: /v1/chat/completions
...
04a) Chat-Modelle
Hier ein beispielhafter API Call:
| Codeblock |
|---|
curl https://litellm.fh-muenster.de/v1/chat/completions -H "Authorization: Bearer sk-..." -H "Content-Type: application/json" -d '{ "model": "azure/gpt-5", "messages": [ {"role": "user", "content": "Was ist der Sinn des Lebens?"} ] }' |
04b) Audio-Transkription
Beispiel für Audio-Transkriptionsmodelle:
...
- .
Ihr Antrag wird dann automatisch an die DVZ geschickt. Sobald der Antrag genehmigt wird, wird die Budgeterweiterung automatisch ausgeführt und Sie bekommen eine Benachrichtigung per Email. Sämtliche Budgeterweiterungen werden zur gleichen Zeit wie die Budget-Resets wieder zurückgesetzt.
03c) Nicht-EU-Modelle
Um Zugriff auf Modelle zu bekommen, die nicht in der EU gehostet werden und damit nicht der Datenschutzgrundverordnung (DSGVO) unterliegen, muss dies erst freigeschaltet werden. Später kann man den Zugriff wieder beschränken.
- Gehen Sie im Service Broker auf "Deployments", öffnen die Detailansicht Ihres LiteLLM-Deployments und öffnen das Meatballmenü neben "litellmParent".
- Klicken Sie auf "Request Non EU Models"
- Lesen Sie den Datenschutzhinweis und bestätigen Sie mit Klick auf "Submit"
- Sollten Sie ihren Zugriff wieder einschränken wollen, nutzen Sie die Funktion "EU Models Only"
- Bestätigen Sie mit Klick auf "Submit"
03d) Advanced AI Modelle
Um Zugriff auf Advanced AI Modelle, wie Claude Fable 5 zu bekommen, muss dies erst freigeschaltet werden. Später kann man den Zugriff wieder beschränken.
- Gehen Sie im Service Broker auf "Deployments", öffnen die Detailansicht Ihres LiteLLM-Deployments und öffnen das Meatballmenü neben "litellmParent".
- Klicken Sie auf "Zugriff auf Advanced AI Modelle beantragen"
- Lesen Sie den Datenschutzhinweis sorgfältig
- Geben Sie eine Begründung für den Bedarf an
- Bestätigen Sie mit Klick auf "Submit"
Bitte beachten Sie unbedingt:
- Diese Modelle können eine höhere Leistungsfähigkeit bieten, unterliegen jedoch anderen Verarbeitungsbedingungen als unsere Standardmodelle (Daten könnten außerhalb der EU verarbeitet und länger gespeichert werden).
- Übermitteln Sie KEINE personenbezogenen oder besonders schützenswerten Daten (z. B. Gesundheitsdaten, Prüfungsdaten, Daten Dritter) an diese Modelle.
03. API-Informationen
| Anker | ||||
|---|---|---|---|---|
|
...
- Navigieren Sie zu
...
- In der Swagger UI können Sie die möglichen Endpunkte einsehen und Details zu der jeweiligen Nutzung einsehen.
- Wenn Sie gewisse Endpunkte testen möchten, können Sie sich unter "Authorize" mit ihrem LiteLLM Key authorisieren. Sie sind als Nutzer nicht für alle Endpunkte authorisiert.
03b) Chat completion Prompts
- Prompts an die verschiedenen LLM Modelle machen Sie an den Endpunkt: /v1/chat/completions
04. Beispiele
| Anker | ||||
|---|---|---|---|---|
|
04a) Chat-Modelle
Hier ein beispielhafter API Call
04c) Video-Modelle
Videoerstellung starten:
| Codeblock |
|---|
curl --location 'https://litellm.fh-muenster.de/v1/videos' -H 'Content-Type: application/json'chat/completions -H '"Authorization: Bearer sk-...'" -H "Content-Type: application/json" -d '{ "model": "NOT-EU-vertex/veo-3.1-generate-previewazure/gpt-5", "promptmessages": [ {"A beautiful sunset over the ocean"}' |
In der response gibt es eine Video ID. Die wird benötigt. Beispiel:
"id":"video_bGl0ZWxsbTpjdXN0b21fbGxtX3Byb3ZpZGVyOnZlcnRleF9haTttb2RlbF9pZDp2ZW8tMy4xLWdlbmVyYXRlLXByZXZpZXc7dmlkZW9faWQ6cHJvamVjdHMvZmhtdWVuc3Rlci1raS9sb2NhdGlvbnMvdXMtY2VudHJhbDEvcHVibGlzaGVycy9nb29nbGUvbW9kZWxzL3Zlby0zLjEtZ2VuZXJhdGUtcHJldmlldy9vcGVyYXRpb25zLzIzNzIxMWRjLTViNmEtNDEzYS2efdgegreghxYWFmYzIwZQ=="
Status überprüfen:
role": "user", "content": "Was ist der Sinn des Lebens?"} ] }' |
04b) Audio-Transkription
Beispiel für Audio-Transkriptionsmodelle:
| Codeblock |
|---|
curl --location ' |
| Codeblock |
curl -k https://litellm.fh-muenster.de/v1/videos/video_bGl0ZWxsbTpjdX... -H "audio/transcriptions' --header 'Authorization: Bearer sk-...' --form 'file=@"/home/FHID/filename.mp3"' --form 'model="NOT-EU-azure/gpt-4o-transcribe"' |
04c) Video-Modelle
Videoerstellung startenVideo herunterladen:
| Codeblock |
|---|
curl -k-location "'https://litellm.fh-muenster.de/v1/videos/video_bGl0ZWxsbTpjdX.../content"' -H 'Content-Type: application/json' -H "'Authorization: Bearer sk-...' -d '{"model": "NOT--output sunset.mp4 |
Video mit Referenzbild geht nur mit Python script:
EU-vertex/veo-3.1-generate-preview", "prompt": "A beautiful sunset over the ocean"}' |
In der response gibt es eine Video ID. Die wird benötigt. Beispiel:
"id":"video_bGl0ZWxsbTpjdXN0b21fbGxtX3Byb3ZpZGVyOnZlcnRleF9haTttb2RlbF9pZDp2ZW8tMy4xLWdlbmVyYXRlLXByZXZpZXc7dmlkZW9faWQ6cHJvamVjdHMvZmhtdWVuc3Rlci1raS9sb2NhdGlvbnMvdXMtY2VudHJhbDEvcHVibGlzaGVycy9nb29nbGUvbW9kZWxzL3Zlby0zLjEtZ2VuZXJhdGUtcHJldmlldy9vcGVyYXRpb25zLzIzNzIxMWRjLTViNmEtNDEzYS2efdgegreghxYWFmYzIwZQ=="
Status überprüfen:
| Codeblock | ||||||
|---|---|---|---|---|---|---|
curl -k | ||||||
| Codeblock | ||||||
| ||||||
import time import requests # FH Münster LiteLLM Server API_BASE = "https://litellm.fh-muenster.de" API_KEY = "/v1/videos/video_bGl0ZWxsbTpjdX... -H "Authorization: Bearer sk-..." |
Video herunterladen:
| Codeblock |
|---|
curl -k "https://litellm.fh-muenster.de/v1/videos/video_bGl0ZWxsbTpjdX.../content" -H "Authorization: Bearer sk-..." --output sunset.mp4 |
Video mit Referenzbild geht nur mit Python script:
| Codeblock | ||||||
|---|---|---|---|---|---|---|
| ||||||
import time import requests # FH Münster LiteLLM Server API_BASE = "https://litellm.fh-muenster.de" API_KEY = "sk-..." # Hier Ihren LiteLLM API Schlüssel einfügen def check_for_budget_error(response): """Prüft ob das Budget überschritten wurde""" # Hier Ihren LiteLLM API Schlüssel einfügen def check_for_budget_error(response): """Prüft ob das Budget überschritten wurde""" try: result = response.json() error = result.get("error", {}) if error.get("type") == "budget_exceeded" or "ExceededBudget" in error.get("message", ""): return True, error.get("message") except: pass return False, None def generate_and_download_video(prompt, reference_image_path=None): headers = { "Authorization": f"Bearer {API_KEY}" } # Step 1: Generate video print("Starting video generation...") if reference_image_path: with open(reference_image_path, "rb") as f: files = { "input_reference": f } data = { "model": "NOT-EU-vertex/veo-3.1-generate-preview", # Modell auswählen "prompt": prompt } response = requests.post( f"{API_BASE}/v1/videos", headers=headers, data=data, files=files ) else: data = { "model": "NOT-EU-vertex/veo-3.1-generate-preview", # Modell ohne Referenzbild "prompt": prompt } response = requests.post( f"{API_BASE}/v1/videos", headers=headers, data=data ) print(f"Response status: {response.status_code}") # Check for budget exceeded budget_exceeded, error_msg = check_for_budget_error(response) if budget_exceeded: print("\n" + "="*50) print("FEHLER: BUDGET ÜBERSCHRITTEN!") print(error_msg) print("="*50) return None print(f"Response: {response.text}") result = response.json() video_id = result.get("id") if not video_id: print("Error: No video ID received") return None print(f"Video ID: {video_id}") # Step 2: Poll for completion print("Waiting for video processing...") max_attempts = 60 attempt = 0 while attempt < max_attempts: try: # Check status status_response = requests.get( f"{API_BASE}/v1/videos/{video_id}", headers=headers ) # Check for budget exceeded budget_exceeded, error_msg = check_for_budget_error(status_response) if budget_exceeded: print("\n" + "="*50) print("FEHLER: BUDGET ÜBERSCHRITTEN!") print(error_msg) print("="*50) return None print(f"Status response: {status_response.status_code}") if status_response.status_code == 200: status_data = status_response.json() status = status_data.get("status") print(f"Attempt {attempt + 1}: Status = {status}") if status == "completed": print("Video completed! Downloading...") # Try to get content content_response = requests.get( f"{API_BASE}/v1/videos/{video_id}/content", headers=headers ) # Check for budget exceeded budget_exceeded, error_msg = check_for_budget_error(content_response) if budget_exceeded: print("\n" + "="*50) print("FEHLER: BUDGET ÜBERSCHRITTEN!") print(error_msg) print("="*50) return None if content_response.status_code == 200: filename = f"video_{video_id[:20]}.mp4" with open(filename, "wb") as f: f.write(content_response.content) print(f"Video saved: {filename}") return filename else: print(f"Content download failed: {content_response.status_code}") print(f"Response: {content_response.text}") # Maybe the video URL is in the status response? print(f"Full status data: {status_data}") return None elif status == "failed": print(f"Video generation failed: {status_data}") return None except Exception as e: print(f"Attempt {attempt + 1}: Error - {e}") time.sleep(10) attempt += 1 print("Timeout: Video generation took too long") return None if __name__ == "__main__": result = generate_and_download_video( prompt="Make the dog in the reference image bark", # Geben Sie hier Ihren Prompt ein reference_image_path=r"C:\Users\mm123456\Veo\reference.png" # Pfad zum Referenzbild ) if result: print(f"Success! Video saved as: {result}") else: print("Failed to generate video") |
...
| Codeblock | ||
|---|---|---|
| ||
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "IHR-LITELLM-KEY",
"ANTHROPIC_BASE_URL": "https://litellm.fh-muenster.de",
"ANTHROPIC_DEFAULT_SONNET_MODEL": "vertex/claude-sonnet-45-65",
"ANTHROPIC_DEFAULT_HAIKU_MODEL": "vertex/claude-haiku-4-5",
"ANTHROPIC_DEFAULT_OPUS_MODEL": "vertex/claude-opus-45-85"
}
} |
04e) OpenCode mit LiteLLM
OpenCode ist ein lokal integrierbarer KI-Code-Assistent, der als Alternative zu Claude Code dient und den Einsatz verschiedener Large Language Models ermöglicht.
OpenCode global installieren:
npm install -g opencode-ai@latest(Falls noch nicht vorhanden: Zuerst Node.js installieren)
- Konfigurationsdatei: Laden Sie die beiliegende opencode.json herunter und legen Sie sie in das Projektverzeichnis, in dem Sie arbeiten möchten.
- API-Key eintragen: Öffnen Sie die opencode.json mit einem Texteditor und ersetzen Sie den Platzhalter durch Ihren persönlichen API-Key. Speichern Sie die Datei.
Starten von OpenCode
- Öffnen Sie ein beliebiges Terminal (oder die Terminalintegration von z.B. VSCode)
- Navigieren Sie zu Ihrem Projektordner (z. B. mit cd /pfad/zum/ordner).
- Geben Sie opencode ein und bestätigen Sie mit Enter.
Nutzung und Modus-Wechsel
- Modellauswahl: Geben Sie /models im Terminal ein, um die in der opencode.json hinterlegten Modelle auszuwählen.
- Modi umschalten: Wechseln Sie mit SHIFT + TAB zwischen Plan- und Build-Modus.
Tipps für den effizienten Einsatz
- Beginnen Sie stets im Plan-Modus, um Anforderungen, Struktur und Randfälle zu klären.
- Verwenden Sie klare und kontextreiche Prompts. Je präziser die Vorgabe, desto genauer die Umsetzung.
- Speichern Sie Ihre opencode.json niemals in öffentlichen Repositories. Der API-Key darf nicht committed werden.
Anhang
...
}
} |
04e) OpenCode mit LiteLLM
OpenCode ist ein lokal integrierbarer KI-Code-Assistent, der als Alternative zu Claude Code dient und den Einsatz verschiedener Large Language Models ermöglicht.
OpenCode global installieren:
npm install -g opencode-ai@latest(Falls noch nicht vorhanden: Zuerst Node.js installieren)
- Konfigurationsdatei: Laden Sie die beiliegende opencode.json herunter und legen Sie sie in das Projektverzeichnis, in dem Sie arbeiten möchten.
- API-Key eintragen: Öffnen Sie die opencode.json mit einem Texteditor und ersetzen Sie den Platzhalter durch Ihren persönlichen API-Key. Speichern Sie die Datei.
Starten von OpenCode
- Öffnen Sie ein beliebiges Terminal (oder die Terminalintegration von z.B. VSCode)
- Navigieren Sie zu Ihrem Projektordner (z. B. mit cd /pfad/zum/ordner).
- Geben Sie opencode ein und bestätigen Sie mit Enter.
Nutzung und Modus-Wechsel
- Modellauswahl: Geben Sie /models im Terminal ein, um die in der opencode.json hinterlegten Modelle auszuwählen.
- Modi umschalten: Wechseln Sie mit SHIFT + TAB zwischen Plan- und Build-Modus.
Tipps für den effizienten Einsatz
- Beginnen Sie stets im Plan-Modus, um Anforderungen, Struktur und Randfälle zu klären.
- Verwenden Sie klare und kontextreiche Prompts. Je präziser die Vorgabe, desto genauer die Umsetzung.
- Speichern Sie Ihre opencode.json niemals in öffentlichen Repositories. Der API-Key darf nicht committed werden.
Anhang
05. Router
| Anker | ||||
|---|---|---|---|---|
|
Statt ein festes KI‑Modell in Ihr Skript oder Ihren Agenten einzutragen, geben Sie einfach default_router als Modellnamen an. Der Router prüft jede Anfrage kurz, schätzt ihre Komplexität ein und wählt automatisch das passende Modell. Aktuell sind folgende Modelle konfiguriert:
| Stufe | Typische Anfrage | Modell |
|---|---|---|
| SIMPLE | Kurze Fragen, Zusammenfassen, Klassifizieren | fhms/Qwen3.5-27B |
| MEDIUM | Normale Alltagsaufgaben | fhms/gemma-4-31b-it |
| COMPLEX | Code, mehrstufige Anweisungen | fhms/Qwen3.8-27B |
| REASONING | Logik, Mathematik, Planung |
|
Besonders praktisch ist der Router überall dort, wo Sie sich nicht auf ein bestimmtes Modell festlegen wollen: Ihr Skript oder Agent verweist nur noch auf den Router – welches Modell tatsächlich antwortet, entscheidet sich zentral in dessen Konfiguration. Kommt ein neues Modell hinzu oder wird ein altes abgelöst läuft ihr Code einfach weiter ohne, dass Sie das Modell manuell ändern müssen.
06. Budget
| Anker | ||||
|---|---|---|---|---|
|
...
Aktuell befindet sich das Projekt noch in der Testphase - daher gibt es noch kein konkretes Budgetmodell. Während der Testphase bekommt jeder Nutzer ein 30$ Budget, welches sich jeweils am 1. April und am 1. Oktober zurücksetzt. Außerdem werden sämtliche Budgeterweiterungen zurückgesetzt.
...
07. Feedback
| Anker |
|---|
...
|
...
|
Feedback, Änderungswünsche und feature requests gerne per Mail an: it-support@fh-muenster.de
...













