5.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 (VPN) 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:e4b |
9,6 GB | sehr schnell, für einfache Aufgaben |
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)
Aktuell geladenes Modell abfragen
Da immer nur ein Modell gleichzeitig im Speicher sein kann, lässt sich mit folgendem Aufruf prüfen, welches Modell gerade aktiv ist:
import httpx
r = httpx.get(
"http://141.75.33.244:8000/api/ps",
headers={"Authorization": "Bearer sk-..."}
)
print(r.json())
Die Antwort enthält Modellname, Größe und wie lange das Modell noch im Speicher bleibt.
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.
Coding-Assistent: Claude Code
Claude Code ist Anthropics offizieller KI-Coding-Agent für das Terminal. Wer bereits einen Claude-Code-Zugang hat, kann ihn über den Intranet-Dienst mit lokalen Modellen betreiben — ohne Daten an Anthropic zu übertragen.
Voraussetzung
Ein aktiver Claude-Code-Zugang (Claude Pro oder Team).
Starten
ANTHROPIC_BASE_URL=http://141.75.33.244:8000 \
ANTHROPIC_AUTH_TOKEN=sk-... \
claude
Das zu verwendende Modell wird vom Admin über ANTHROPIC_DEFAULT_MODEL vorkonfiguriert — eine manuelle Modellauswahl ist nicht nötig.
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)