Split second example into focused model listing only, remove repeated prompt code. Replace TUI with 'interaktive Terminal-Oberfläche'.
4.8 KiB
LLM-Dienst – Kurzanleitung
Worum geht es?
Der Dienst stellt große Sprachmodelle (LLMs) über eine einfache HTTP-API bereit, die direkt aus Python-Skripten, Jupyter-Notebooks oder eigenen Anwendungen angesprochen werden kann. Die Modelle laufen lokal auf einem GPU-Server im Intranet – ohne Datenübertragung nach außen und ohne Cloud-Kosten.
Typische Anwendungsfälle:
- Texte zusammenfassen, übersetzen oder umformulieren
- KI-gestütztes Coding (z.B. mit opencode)
- Experimente mit Prompt-Engineering und LLM-Integration in eigene Projekte
Zugang
Der Dienst ist nur im Intranet erreichbar.
| API-Endpunkt | http://141.75.33.244:8000 |
| Authentifizierung | API-Key erforderlich (per E-Mail beim Admin anfragen) |
Verfügbare Modelle
| Modell | Größe | Hinweis |
|---|---|---|
gemma4:31b |
19 GB | kompakt, schnell |
gpt-oss:20b |
13 GB | kompakt, schnell |
gpt-oss:120b |
65 GB | sehr leistungsfähig |
qwen3.5:122b |
81 GB | sehr leistungsfähig |
qwen3-coder-next:q8_0 |
84 GB | speziell für Code |
Wichtig: Es kann immer nur ein Modell gleichzeitig im GPU-Speicher geladen sein. Wechselt jemand das Modell, muss das vorherige entladen und das neue geladen werden – das kann mehrere Minuten dauern. Der erste Prompt nach einem Modellwechsel ist deshalb deutlich langsamer. Danach bleibt das Modell einige Zeit geladen.
Python-Beispiel – Einfacher Prompt
Das API folgt dem OpenAI-Standard, d.h. die openai-Bibliothek kann direkt verwendet werden.
pip install openai
from openai import OpenAI
API_KEY = "sk-..." # euren API-Key eintragen
BASE_URL = "http://141.75.33.244:8000/v1"
MODEL = "gemma4:31b" # Modell nach Bedarf wählen
client = OpenAI(api_key=API_KEY, base_url=BASE_URL)
response = client.chat.completions.create(
model=MODEL,
messages=[
{"role": "user", "content": "Erkläre den Unterschied zwischen L1- und L2-Regularisierung."}
]
)
print(response.choices[0].message.content)
Python-Beispiel – Verfügbare Modelle abfragen
from openai import OpenAI
API_KEY = "sk-..."
BASE_URL = "http://141.75.33.244:8000/v1"
client = OpenAI(api_key=API_KEY, base_url=BASE_URL)
models = client.models.list()
for m in models.data:
print(m.id)
Empfehlungen zur Nutzung
- Kleines Modell zuerst (
gemma4:31bodergpt-oss:20b) – viel schneller, für viele Aufgaben ausreichend. - Großes Modell nur bei komplexen Aufgaben (
qwen3.5:122b,gpt-oss:120b). - Code-Aufgaben:
qwen3-coder-next:q8_0ist speziell dafür optimiert. - Wenn möglich, dasselbe Modell wie andere Nutzer verwenden, um häufige Modellwechsel zu vermeiden.
Quotas
Je nach API-Key können folgende Limits konfiguriert sein:
- Maximale Anfragen pro Tag / Monat
- Maximale Tokens pro Tag / Monat
Bei Überschreitung gibt die API den Statuscode 429 Too Many Requests zurück.
Coding-Assistent: opencode
opencode ist ein terminal-basierter KI-Coding-Agent (ähnlich Claude Code), der OpenAI-kompatible APIs unterstützt und damit direkt auf den Intranet-Dienst zeigen kann.
Installation
npm install -g opencode-ai
# oder
curl -fsSL https://opencode.ai/install | bash
Konfiguration
Konfigurationsdatei anlegen unter ~/.config/opencode/config.json:
{
"$schema": "https://opencode.ai/config.json",
"providers": {
"openai": {
"apiKey": "sk-...",
"baseURL": "http://141.75.33.244:8000/v1"
}
},
"model": "openai/qwen3-coder-next:q8_0"
}
Für Code-Aufgaben empfiehlt sich qwen3-coder-next:q8_0, für allgemeine Aufgaben gemma4:31b oder gpt-oss:20b.
Starten
opencode
opencode öffnet eine interaktive Terminal-Oberfläche und kann dann im Projektverzeichnis eingesetzt werden – Dateien lesen, Code generieren, Refactoring vorschlagen usw.
Administration (nur für Admins)
Das Web-Interface zur Verwaltung von API-Keys und Quotas ist erreichbar unter:
http://141.75.33.244:8001
Dort können API-Keys angelegt, deaktiviert und mit Quotas versehen werden.
Modell-Lock für Praktika
Unter Einstellungen → Aktives Modell (Lock) kann ein Modell fest vorgegeben werden. Ist ein Lock gesetzt, wird das model-Feld in jedem Request durch dieses Modell ersetzt – unabhängig davon, was der Client schickt. Das verhindert unkoordinierte Modellwechsel während einer Veranstaltung, die alle Teilnehmenden durch lange Ladezeiten ausbremsen würden.
Typischer Ablauf für ein Praktikum:
- Vor der Veranstaltung: passendes Modell in Ollama laden
- Lock in der Admin-Oberfläche aktivieren
- Nach der Veranstaltung: Lock wieder deaktivieren (Feld leeren)