Lokales Modell als Ausweichlösung

Lokales Modell als Ausweichlösung

- Matt

Weil hinter IChatClient beides steckt, lässt sich ein Ausweichweg bauen:

public sealed class FallbackChatClient(IChatClient primaer, IChatClient ersatz) : IChatClient
{
    public async Task<ChatResponse> GetResponseAsync(
        IEnumerable<ChatMessage> nachrichten, ChatOptions? o = null, CancellationToken t = default)
    {
        try { return await primaer.GetResponseAsync(nachrichten, o, t); }
        catch (Exception ex) when (ex is HttpRequestException or TaskCanceledException)
        {
            return await ersatz.GetResponseAsync(nachrichten, o, t);
        }
    }
    // ...
}

Das ist bewusst simpel gehalten. Für Wiederholungen mit Wartezeit gibt es fertige Bausteine, die man in die Pipeline hängt, statt sie selbst zu schreiben.

Der Haken liegt woanders: Die Antwortqualität wechselt mit. Für Zusammenfassungen ist das verkraftbar, für strukturierte Ausgaben sollte man die Prüfung danach nicht weglassen.