# Liest eine gespeicherte /api/ps-Antwort. Keine API-Anfrage, kein Modellstart.
import json, sys
def check(document, model, requested):
    if type(requested) is not int or requested <= 0 or not isinstance(model, str) or not model.strip():
        return "angaben_unpassend"
    if not isinstance(document, dict) or not isinstance(document.get("models"), list):
        return "api_form_unpassend"
    matches = [m for m in document["models"] if isinstance(m, dict)
               and model in (m.get("name"), m.get("model"))]
    if len(matches) != 1:
        return "modell_nicht_eindeutig_geladen"
    actual = matches[0].get("context_length")
    if type(actual) is not int or actual <= 0:
        return "beobachtung_unpassend"
    return "wert_bestaetigt" if actual == requested else "abweichung_pruefen"
if __name__ == "__main__":
    if len(sys.argv) != 4:
        raise SystemExit('Aufruf: python kontext-pruefen.py ps.json "DEIN_MODELL:TAG" 8192')
    with open(sys.argv[1], encoding="utf-8-sig") as f:
        raw = f.read(1000001)
    if len(raw) > 1000000:
        raise SystemExit("Protokoll zu gross.")
    try:
        data = json.loads(raw)
        requested = int(sys.argv[3])
    except ValueError:
        raise SystemExit("Protokoll ist kein gueltiges JSON.")
    result = check(data, sys.argv[2], requested)
    print(result)
    print("Keine Token-, Speicher-, Geschwindigkeits- oder Qualitaetsmessung.")
    raise SystemExit(0 if result == "wert_bestaetigt" else 1)
