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.