Bisher kam context_exceeded als 502 an — OpenAI-Clients (litellm/OpenHands) hielten das fuer einen Serverfehler statt zu kuerzen/verdichten. Jetzt 400 mit code context_length_exceeded und dem OpenAI-ueblichen Text inkl. Zahlen. Doku: Abschnitt "Den Verlauf verwaltet das Programm" (Kuerzen, Verdichten, Gedaechtnis) fuer Drittprogramme. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
OpenAI-RVS-Wrapper
Macht den ARIA-LLM-Cluster für Programme, die nur „OpenAI-kompatibel" können (OpenHands, Continue, Open WebUI …), zu einem ganz normalen OpenAI-Endpunkt auf diesem Rechner:
Programm ──HTTP──▶ Wrapper (127.0.0.1:8099) ──RVS──▶ ARIA-Bridge ──▶ KI-Box / Karte
Der Wrapper braucht nur eine ausgehende Verbindung zum RVS. Das Programm kann also stehen, wo es will — keine Portfreigabe, kein VPN.
Einrichten
cp .env.example .env # RVS_HOST, RVS_PORT, RVS_TOKEN eintragen
docker compose up -d --build
Dann im Browser http://127.0.0.1:8099/ öffnen. Die Hilfsseite zeigt, ob die Verbindung steht, welche Modelle es gibt und was man einträgt.
Im Programm eintragen
| Feld | Wert |
|---|---|
| Base URL | http://127.0.0.1:8099/v1 |
| API-Key | beliebig — oder WRAPPER_API_KEY, falls gesetzt |
| Modell | ein Name von der Hilfsseite, z.B. qwen3-8b |
| Kontextfenster | der Wert von der Hilfsseite (nicht mehr eintragen, die Box gibt nur so viel her) |
Läuft das Programm selbst in Docker, ist 127.0.0.1 dort der eigene
Container. Dann das Netz aria-llm anhängen und http://openai-rvs-wrapper:8099/v1
nehmen:
services:
openhands:
# …
networks: [default, aria-llm]
networks:
aria-llm:
external: true
Was der Cluster dahinter macht
- Jedes Modell steht in der Liste einmal, egal auf wie vielen Karten es liegt.
- Liegt es auf mehreren Karten, verteilt der Cluster bei Last. Fällt eine Box mitten in der Anfrage aus, übernimmt eine andere mit demselben Modell.
- Welche Modelle es gibt, legt nur die ARIA-Diagnostic fest (Einstellungen → LLM-Karten). Ein Programm kann nichts laden oder entladen.
- Fehler (Modell nicht geladen, Cluster nicht erreichbar) kommen als HTTP-Fehler mit OpenAI-Fehlerobjekt, nie als normale Antwort.
stream: truegeht; die Antwort kommt derzeit in einem Rutsch statt Wort für Wort.
Endpunkte: GET /v1/models, POST /v1/chat/completions, GET /health, GET / (Hilfsseite).
Die Schnittstelle dahinter: docs/LLM-SCHNITTSTELLE.md.