Programmierung und Softwareentwicklung

Hinzufügen von Routing- und Failover-Tools zu Microsoft.Extensions.AI

Das .NET-Team hat vier neue experimentelle Typen angekündigt, die das Routing von KI-Anfragen zwischen Modellen und Dienstanbietern, das Failover bei Ausfällen sowie den Aufbau benutzerdefinierter Routing-Richtlinien in Microsoft.Extensions.AI ermöglichen.

2026-08-13
4 Min. Lesezeit
8 Aufrufe
فريق تحرير certi.news
Hinzufügen von Routing- und Failover-Tools zu Microsoft.Extensions.AI

Microsoft hat der Bibliothek Microsoft.Extensions.AI vier experimentelle Typen zur Verwaltung des Routings von KI-Anfragen und des Failovers zwischen Modellen oder Dienstanbietern hinzugefügt. Alle diese Typen implementieren die Schnittstelle IChatClient und können dadurch innerhalb der bestehenden Bibliotheksstruktur zur Bewältigung von Kosten-, Verfügbarkeits- und Latenzbeschränkungen eingesetzt werden.

Routing- und Failover-Tools

RoutingChatClient stellt die Basisklasse dar, die für jede Anfrage einen geeigneten Client auswählt und den Aufruf anschließend an ihn weiterleitet. Er kann über eine einfache Callback-Funktion erstellt oder durch das Überschreiben von SelectClientAsync erweitert werden, um komplexere oder vom Anwendungszustand abhängige Routing-Richtlinien umzusetzen.

SemanticRoutingChatClient leitet Anfragen anhand ihrer Bedeutung weiter. Der Entwickler stellt der Bibliothek Beispiele für Äußerungen bereit, die mit jedem Client verbunden sind. Anschließend wird die letzte Nachricht des Benutzers in ein Embedding umgewandelt und mit den Beispielen verglichen, um den Client mit der höchsten Ähnlichkeit auszuwählen, sofern diese den festgelegten Schwellenwert überschreitet. Überschreitet keine Übereinstimmung den Schwellenwert, wird der Standardclient verwendet.

Embeddings für Routing-Beispiele werden bei Bedarf erstellt und zwischengespeichert. Einstellungen wie scoreThreshold, topK und scoreAggregation ermöglichen die Steuerung der Mindestähnlichkeit und der Anzahl der Beispiele, die zur Aggregation des Ergebnisses verwendet werden, wobei entweder der Mittelwert oder die Summe genutzt werden kann. Standardmäßig verwirft der Typ außerdem die Clients und den Embedding-Generator, wenn er verworfen wird. Dieses Verhalten kann über leaveOpen deaktiviert werden.

Failover und Überwachung von Versuchen

FailoverChatClient erweitert die Routing-Funktionen um eine Wiederholungsschleife. Wenn der ausgewählte Client fehlschlägt, bevor eine Streaming-Ausgabe den Aufrufer erreicht, ruft der Typ SelectClientAsync erneut auf, um einen anderen Client auszuwählen. Nach Beginn der Ausgabe gilt ein Fehler jedoch als endgültig; das System führt keine Wiederherstellung innerhalb des Streams durch.

Die Klasse stellt OnRoutingUpdateAsync zur Überwachung jedes Versuchs bereit, unabhängig davon, ob dieser erfolgreich, fehlgeschlagen oder aufgegeben wurde. Das Versuchprotokoll enthält den aufgerufenen Client, die Ausführungsdauer, die Ausnahme, sofern vorhanden, sowie Angaben dazu, ob die Antwort abgeschlossen wurde oder eine Streaming-Ausgabe den Aufrufer erreicht hat. Zusätzlich wird, sofern zutreffend, die Zeit bis zur ersten Aktualisierung erfasst. Diese Daten können zur Bewertung der Leistung von Anbietern oder zum Aufbau von Richtlinien wie Circuit Breaking und der Sortierung von Clients nach Latenz verwendet werden.

OrderedFailoverChatClient bietet eine fertige Implementierung dieses Mechanismus. Er erhält eine geordnete Liste von Clients und versucht sie nacheinander. Wenn alle Optionen fehlschlagen, wird die letzte Ausnahme erneut ausgelöst. MaximumAttemptsPerRequest legt die maximale Anzahl der Aufrufe pro Anfrage fest. Außerdem wird kein neuer Client ausgewählt, wenn das Abbruchtoken der Anfrage abgebrochen wurde.

Überlegungen beim Erstellen von Routing-Richtlinien

Der Beitrag warnt davor, ohne Berücksichtigung ihrer Beschaffenheit für jede Rolle der Unterhaltung ein erneutes Routing durchzuführen. Reasoning-Modelle können von verschlüsselten Inhalten oder Fortsetzungstokens abhängen, die an einen bestimmten Anbieter gebunden sind. Außerdem kann der Wechsel zu einem anderen Modell oder Anbieter den Vorteil des Prompt-Cachings zunichtemachen und die Kosten für dessen erneute Berechnung verursachen.

Für Unterhaltungen mit mehreren Nachrichten empfiehlt der Beitrag, den Pfad mithilfe einer Sitzungs-ID zu fixieren, die vom Dienst selbst verwaltet wird, anstatt sich auf die anbieterspezifische ConversationId zu verlassen. Der ausgewählte Pfad kann im Sitzungszustand oder in IDistributedCache gespeichert werden. Er sollte erst nach erfolgreichem Abschluss der Antwort fixiert werden.

Zu den weiteren Richtlinien, die erstellt werden können, gehören Routing nach Latenz, Zustand, Kosten, Fähigkeiten und geografischer Region. Außerdem können mehrere Router miteinander kombiniert werden, da jeder von ihnen als IChatClient arbeitet. Diese Tools implementieren jedoch weder sequenzielles Routing auf Grundlage der Qualität einer erfolgreichen Antwort noch die Ausführung mehrerer Clients mit anschließender Zusammenführung ihrer Ergebnisse oder ein Wettrennen zwischen Clients zur Auswahl der ersten Antwort. Für diese Szenarien ist ein Client erforderlich, der mehr als einen Aufruf ausführt.

Verfügbarkeit und experimenteller Status

Die Typen RoutingChatClient, RoutingContext, FailoverChatClient, FailoverChatClientAttempt, OrderedFailoverChatClient und SemanticRoutingChatClient sind in Version 10.9.0 von Microsoft.Extensions.AI verfügbar. Alle sind mit dem Diagnosebezeichner MEAI001 als experimentell gekennzeichnet. Das Paket kann mit dem Befehl dotnet add package Microsoft.Extensions.AI hinzugefügt werden.

Nachrichtenquelle
ف
Autor

فريق تحرير certi.news

Aus derselben Kategorie

Das könnte Sie interessieren

Alle Nachrichten anzeigen