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:

Aufruf

apparat ner ping

Das Kommando hat keine Optionen. Endpoint und Timeout kommen aus den Umgebungs­variablen 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

Umgebungs­variable 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.