ner ping
ner ping prüft, ob der konfigurierte NER-Service erreichbar ist und welche Sprachmodelle er aktuell anbietet. Reine Diagnose — kein Vault wird geöffnet, kein Index angefasst, kein Vorschlag berechnet.
Wofür ist das?
Drei Szenarien sind die typischen Aufrufer:
- Erst-Setup einer Apparat-Installation. Nach
docker compose up -dsagt dirner pingin einer Zeile, ob die Schicht-3a-Pipe steht oder ob das Image noch baut. - Diagnose eines stillen Ausfalls. Wenn
ner suggestplötzlich „offline" meldet, lokalisiertner pingdas Problem zuverlässig auf Container down, Modell weg oder beides okay. - Nicht-interaktive Skripte. Die Exit-Codes sind so geschnitten, dass ein Supervisor-Skript automatisch entscheiden kann, ob es retryen, warten oder abbrechen soll.
Aufruf
apparat ner ping
Das Kommando hat keine Optionen. Endpoint und Timeout kommen aus den Umgebungsvariablen APPARAT_NER_ENDPOINT und APPARAT_NER_TIMEOUT.
Beispielausgaben
Alles in Ordnung:
✅ Service reachable.
Available models:
- de → de_core_news_md
- en → en_core_web_md
✅ NER service is healthy.
Service erreichbar, kein Modell:
✅ Service reachable. ⚠ Service reports no language models. Service reachable but reported no language models.
Service unerreichbar:
❌ Service unreachable. Connection to http://ner:8000 failed: …
Exit-Codes
| Code | Bedeutung |
|---|---|
| 0 | Service erreichbar und mindestens ein Sprachmodell verfügbar. |
| 1 | Service unerreichbar (Container nicht gestartet, Netz blockiert, Endpoint fehlerhaft konfiguriert). |
| 2 | Service erreichbar, meldet aber keine Sprachmodelle. Tritt typischerweise nur dann auf, wenn jemand das NER-Image ohne den python -m spacy download …-Schritt gebaut hat. |
Die Trennung zwischen 1 und 2 macht den Unterschied zwischen Infrastruktur-Problem (Code 1) und Image-Setup-Problem (Code 2) sichtbar — relevant für Monitoring-Skripte und für die Entscheidung, ob ein Container-Neustart oder ein Rebuild die Lösung ist.
Konfiguration
| Umgebungsvariable | Bedeutung | Default |
|---|---|---|
APPARAT_NER_ENDPOINT |
Basis-URL des NER-Service. Wird intern um /health ergänzt. |
http://ner:8000 (im Container) |
APPARAT_NER_TIMEOUT |
Timeout pro HTTP-Aufruf in Sekunden. | 10 |
Auf dem Host (außerhalb des Containers) ist http://ner:8000 nicht auflösbar — das ist Absicht: der NER-Service ist Compose-internal und nicht nach außen exposed. Das apparat-Kommando delegiert ner ping deshalb automatisch in den Web-Container des Mandanten; aufrufseitig bleibt der Befehl gleich.
Was nebenbei wichtig ist
ner ping ist eine reine Diagnose: Erreichbarkeit und Modell-Liste. Ob das Modell tatsächlich brauchbare Vorschläge produziert, zeigt sich beim ersten Aufruf von ner suggest gegen eine kontrollierte Beispiel-Entität. Die Sprachmodelle sind ins Container-Image integriert und werden nicht zur Laufzeit nachgeladen. Vault, Graph und Vektor-Index werden nicht angefasst.