Eine in eine PHP-Anwendung integrierte KI-Funktion kann zu lange brauchen, nicht verfügbar sein oder ein Ergebnis liefern, das sich für den Prozess nicht eignet. Das Problem lässt sich weder dadurch lösen, dass jede Antwort als gültig behandelt wird, noch durch unbegrenztes Wiederholen der Anfrage: Beides kann sich negativ auf Nutzererlebnis, Daten und Kosten auswirken. Ein Fallback für die KI-Integration in PHP legt fest, wie sich das System verhält, wenn die Abhängigkeit ausfällt, und welche Vorgänge ohne eine akzeptable Antwort nicht fortgesetzt werden dürfen.
Welche Alternative die richtige ist, hängt von den Auswirkungen der Funktion ab. Ein Textvorschlag kann vorübergehend entfallen; eine Entscheidung, die eine Zahlung, eine Berechtigung oder eine Datenaktualisierung betrifft, sollte nicht auf Grundlage unvollständiger oder vermuteter Informationen ausgeführt werden. Ziel ist ein vorhersehbares Verhalten, nicht das Verbergen sämtlicher Fehler.
Festlegen, was als Fehler gilt

Lege vor der Implementierung von Alternativen fest, unter welchen Bedingungen eine Antwort nicht verwendbar ist. Eine Unterscheidung der Fälle erleichtert die Auswahl einer Richtlinie und die Messung ihrer Wirksamkeit:
- Timeout: Die Anfrage überschreitet das Wartezeitlimit der Anwendung.
- Nichtverfügbarkeit oder Transportfehler: Die Verbindung schlägt fehl oder der Anbieter antwortet mit einem Fehler.
- Leere Antwort: Der Aufruf wird abgeschlossen, enthält aber nicht den erwarteten Inhalt.
- Ungültiges Format: Das Ergebnis lässt sich nicht parsen oder erfüllt das erforderliche Schema nicht, etwa JSON mit fehlenden Feldern.
- Nicht akzeptables Ergebnis: Die Ausgabe ist lesbar, erfüllt aber Geschäftsregeln, Validierungen oder Sicherheitskriterien nicht.
Eine technisch korrekte Antwort sollte nicht mit einer gültigen Entscheidung gleichgesetzt werden. Erwartet die Anwendung eine Kategorie aus einer abgeschlossenen Menge, muss sie prüfen, ob der Wert zu dieser Menge gehört. Erwartet sie Pflichtfelder, muss sie diese validieren, bevor sie sie an eine andere Komponente weitergibt. Deterministische Prüfungen müssen im PHP-Code ausgeführt und dürfen nicht erneut an dasselbe Modell delegiert werden.
Wartezeit und Wiederholungsversuche begrenzen
Lege ein Timeout fest, das zum Vorgang und zur gesamten Wartezeit passt, die Nutzer oder Prozess verkraften können. Berücksichtige auch die Grenzen des Webservers, der Warteschlange und aller zwischengeschalteten HTTP-Clients: Ein lokales Timeout, das das Anfrage-Limit überschreitet, bietet keine wirksame Kontrolle. Bei einer Hintergrundaufgabe kann ein anderes Zeitfenster akzeptabel sein, sofern es eine ausdrückliche Richtlinie für ausstehende Aufgaben gibt.
Wiederholungsversuche müssen begrenzt sein und dürfen nur bei Fehlern eingesetzt werden, die vorübergehend sein können. Eine Netzwerkunterbrechung kann einen zusätzlichen Versuch rechtfertigen; eine Antwort, die das Schema nicht erfüllt, erfordert normalerweise Validierung, einen Fallback oder eine Überprüfung – keine blinde Wiederholung. Begrenze die Anzahl der Versuche und die Gesamtzeit. Wird eine ansteigende Wartezeit verwendet, muss auch dafür ein Höchstwert festgelegt werden.
Beachte, dass ein wiederholter Aufruf zusätzlichen Verbrauch oder weitere Auswirkungen verursachen kann. Vermeide unbegrenzte automatische Wiederholungsversuche und prüfe, ob der Vorgang idempotent ist. Eine Textgenerierung ohne Nebenwirkungen ist nicht mit einer Aktion gleichzusetzen, die eine Bestellung anlegt oder eine Benachrichtigung versendet. Trenne bei sensiblen Vorgängen die Erstellung eines Vorschlags von dessen Ausführung und unterziehe Letztere eigenen Kontrollen.
Eine Alternative passend zu den Auswirkungen wählen
Ein Fallback ist keine allgemeine Antwort auf alle Fehler. Er muss die Geschäftsregeln wahren und klar vermitteln, was die Anwendung tun kann:
- Funktion einschränken: Wenn die KI nur zusätzlichen Komfort bietet, kann die Anwendung ohne diese Funktion fortfahren. Beispielsweise kann statt eines generierten Vorschlags das herkömmliche Formular angezeigt werden.
- Aufschieben: Kann das Ergebnis später erstellt werden, speichere die Aufgabe mit dem Status „ausstehend“ und ermögliche begrenzte, nachverfolgbare Wiederholungsversuche über eine Warteschlange.
- Überprüfung anfordern: Ist menschliches Urteilsvermögen erforderlich, zeige einen Vorschlag als Entwurf an oder leite den Fall an eine Person weiter. Stelle eine nicht validierte Ausgabe nicht als endgültige Entscheidung dar.
- Ablehnen oder anhalten: Lässt sich eine für den Vorgang notwendige Bedingung nicht überprüfen, verhindere die Aktion und erkläre, wie es weitergeht oder Hilfe angefordert werden kann.
Die Entscheidung sollte sich nach dem Risiko eines Fehlverhaltens richten, nicht nur nach den Kosten einer Unterbrechung. Eine Suchfunktion mit Vorschlägen kann weiterhin die ursprüngliche Anfrage verwenden. Ein Ablauf, der dagegen Kundendaten ändert, sollte fehlende Felder nicht durch Vermutungen ergänzen. Beeinflusst die KI-Ausgabe eine Geschäftsentscheidung, sollte nach Möglichkeit ein manueller Weg oder eine deterministische Regel verfügbar bleiben.
Die Integrität der Prozesse schützen
Behandle die Modellantwort wie eine externe Eingabe: Analysiere ihre Struktur, validiere jeden Wert und beschränke, welche Vorgänge sie auslösen kann. Füge sie nicht direkt in SQL-Abfragen, Befehle, HTML oder Anweisungen für andere Systeme ein. Verwende parametrisierte Abfragen, eine geeignete Kodierung und Allow-Lists sowie domänenspezifische Prüfungen.
Ziehe eine klare Grenze zwischen Vorschlagen und Ausführen. Die KI kann beispielsweise eine Klassifizierung vorschlagen; der Code prüft, ob sie zulässig ist, und die Produktrichtlinie legt fest, ob sie automatisch angewendet wird oder ausstehend bleibt. Fehlt eine erforderliche Angabe, besteht die sichere Alternative meist darin, sie anzufordern, den Fall unvollständig zu lassen oder den Prozess anzuhalten – nicht darin, sie zu erfinden. Auch das Verhalten im Fehlerfall muss die üblichen Berechtigungen, Validierungen und Autorisierungsregeln einhalten.
Fehler protokollieren, ohne unnötige Informationen zu speichern
Protokolle sollten bei der Diagnose helfen, ohne zu einer Kopie der Unterhaltungen zu werden. Speichere technische Ereignisse wie den Vorgang, die Fehlerart, die Dauer, die Anzahl der Versuche, das Validierungsergebnis und eine Korrelations-ID. Erfasse genügend Informationen, um beispielsweise einen Timeout von ungültigem JSON unterscheiden zu können, vermeide aber, standardmäßig vollständige Prompts, Antworten, Zugangsdaten oder personenbezogene Daten zu protokollieren.
Müssen Inhalte für eine Überprüfung oder ein Audit aufbewahrt werden, lege zuvor Zweck, Zugriff, Aufbewahrungsdauer und Schutzmaßnahmen fest. Erfasse in den Metriken die Häufigkeit von Timeouts, ungültigen Antworten, Fallbacks und ausstehenden Aufgaben sowie Latenz und Wiederholungsversuche. Ein Anstieg kann auf ein Betriebsproblem oder eine Änderung des Ausgabeverhaltens hinweisen. Metriken helfen, Trends zu erkennen; sie ersetzen weder die Überprüfung des Einzelfalls noch beweisen sie für sich genommen, dass eine Antwort korrekt ist.
Szenarien testen und Kriterien abstimmen

Teste die Integration mit kontrollierten Antworten und überprüfe sowohl das sichtbare Ergebnis als auch die Auswirkungen im System. Berücksichtige hohe Latenz, Verbindungsabbrüche, leere Antworten, ungültige Formate, Werte außerhalb der Regeln und die Wiederherstellung nach einem Fehler. Prüfe, dass keine Aktionen doppelt ausgeführt werden, Wiederholungsversuche ihre Grenzen einhalten und Protokolle keine sensiblen Inhalte offenlegen. Teste außerdem, was geschieht, wenn eine Aufgabe ausstehend bleibt oder ein Eingreifen erforderlich ist.
Stimme vor dem Produktivbetrieb einer Funktion die folgenden Entscheidungen mit Produkt- und Technikteam ab:
- Ist die Funktion für den Abschluss des Vorgangs erforderlich oder verbessert sie lediglich das Nutzererlebnis?
- Welche Gesamtwartezeit ist für die jeweiligen Kanäle akzeptabel?
- Bei welchen Fehlern sind Wiederholungsversuche zulässig und wie viele?
- Was ist die sichere Alternative: ohne KI fortfahren, aufschieben, menschlich überprüfen lassen oder anhalten?
- Welche Validierungen müssen erfolgreich sein, bevor die Antwort verwendet wird?
- Welche Daten werden protokolliert, wer kann darauf zugreifen und wie lange werden sie aufbewahrt?
- Wie wird das Team benachrichtigt und wer bearbeitet ausstehende Fälle?
Eine sinnvolle Richtlinie ermöglicht es, Zusatzfunktionen einzuschränken und Vorgänge anzuhalten, die von nicht verifizierten Daten abhängen. Lässt sich nicht genau erklären, was bei einer verspäteten, ungültigen oder ausbleibenden Antwort geschieht, verfügt die Integration noch über keinen betriebsfähigen Fallback. Dokumentiere diese Regeln zusammen mit dem Ablauf und teste sie erneut, wenn sich das Produkt, die Validierungen oder die Art der Nutzung des Dienstes ändern.



