Modellek és következtetésszolgáltatók váltása futásidőben

Az alkalmazások különböző következtetési szolgáltatásokból származó modelleket használhatnak a beszélgetés különböző fordulataihoz. Előfordulhat például, hogy egy alkalmazás a felhasználók választása, a modell képességei, a rendelkezésre állás vagy a költségek alapján módosítja a modelleket.

A következő kérés céljának módosítása csak az útválasztás egyik része. Az új modellnek az előző beszélgetésre is szüksége van, hogy ugyanazzal a kontextussal folytassa. Az, hogy megkapja-e ezt a környezetet, attól függ, hogy hol tárolja a csevegési előzményeket, és ki szabályozza azt.

A csevegési előzmények tárolója meghatározza a hordozhatóságot

A következtetési szolgáltatások a beszélgetési állapot különböző megközelítéseit támogatják. Egyes API-k azt várják, hogy a hívó minden kéréssel megosszon a vonatkozó üzenetelőzményekkel. Más API-k a következtetési szolgáltatásban tárolják a beszélgetést, és egy azonosító átadásával hagyják, hogy a hívó folytassa.

Előzménymodell Az üzenetek tárolási helye A hívó által küldött üzenet
A hívó által kezelt Alkalmazás által vezérelt memóriában vagy tartós tárolóban A vonatkozó üzenetelőzmények, valamint az egyes kérésekkel kapcsolatos új üzenetek
Következtetés-szolgáltatás által felügyelt A következtetési szolgáltatás által szabályozott tárolóban Szolgáltatásspecifikus beszélgetés vagy válaszazonosító, valamint új üzenetek.

Egyes következtetési szolgáltatások mindkét megközelítést támogatják különböző API-k vagy lehetőségek segítségével. Például az OpenAI Responses rendelkezik a false paraméterrel, amelyet store értékre állíthat a következtetési szolgáltatás által kezelt csevegési előzményekhez, illetve true értékre a hívó által kezelt előzményekhez.

A hívó által felügyelt előzmények támogatják az útválasztást

Amikor a hívó kezeli az előzményeket, hozzáfér a korábbi fordulók üzeneteihez. Az útválasztó kiválaszthat egy másik modellt vagy inferenciaszolgáltatást, a hívó pedig a következő kéréssel elküldheti ezeket az üzeneteket.

Az előzményeknek nem kell a folyamat memóriájában maradniuk. Az alkalmazás tulajdonában lévő tartós tárolóból is származhat, amennyiben az alkalmazás betöltheti és elküldheti a kiválasztott szolgáltatásnak. A célhelynek támogatnia kell a beszélgetés korábbi részében használt üzenettartalmat és funkciókat is.

Az inferencia-szolgáltatás által kezelt előzménykorlátok útválasztása

Amikor egy következtetési szolgáltatás kezeli az előzményeket, az a beszélgetés igazságforrása. A hívó általában az üzenetek helyett egy átlátszatlan azonosítót őriz meg.

Ez az azonosító az eredeti szolgáltatás által birtokolt állapotra utal. A hozzáférés függhet a beszélgetés létrehozásához használt fióktól, projekttől, végponttól és hitelesítő adatoktól is. Egy másik szolgáltatás ügyfele nem használhatja az azonosítót az üzenetek lekéréséhez. Előfordulhat, hogy ugyanahhoz a szolgáltatáshoz egy másik ügyfél sem fér hozzá a beszélgetéshez, ha más hatókört használ.

A szolgáltatások támogathatják a modellek módosítását a saját tárolt beszélgetéseik egyikén belül. Ez a viselkedés az adott szolgáltatásra jellemző, és nem átvihető útválasztás. Egy általános útválasztó nem tudja átadni a szolgáltatói oldali beszélgetést egy másik szolgáltatónak anélkül, hogy előbb lekérné vagy rekonstruálná az üzeneteket.

Útválasztási forgatókönyv Előzménymodell Result
Váltás egy szolgáltató modelljei között A hívó által kezelt A hívó vissza tudja játszani az előzményeket az új modellben. Az új modellnek támogatnia kell a korábban használt üzeneteket és tartalomtípusokat.
Váltás a különböző következtetésszolgáltatók között Hívó által felügyelt A hívó vissza tudja játszani az előzményeket az új szolgáltatónak. Az új szolgáltatónak el kell fogadnia a korábban használt szerepköröket, tartalomtípusokat, eszközhívási üzeneteket és eszközalapú üzeneteket.
Modellek módosítása egy szolgáltatásoldali beszélgetésben Következtetés-szolgáltatás által felügyelt A kapcsoló csak akkor működik, ha a következtetési szolgáltatás lehetővé teszi a meglévő beszélgetés folytatását az új modellel. Az útválasztási ügyfél nem tudja engedélyezni ezt a viselkedést.
Váltás másik következtetési szolgáltatásra Következtetés-szolgáltatás által felügyelt Az új szolgáltatás nem tudja elérni az eredeti szolgáltatás beszélgetési azonosítóját. Kérje le vagy rekonstruálja az üzeneteket, és indítsa el az új útvonalat a hívó által felügyelt előzményekkel.

További információ ezekről a tárolási modellekről: Storage.

Hogyan implementálja az Agent Framework a futtatókörnyezeti útválasztást?

Az Agent Framework képes biztosítani a portábilis útválasztáshoz szükséges, a hívó fél által kezelt előzményeket. Ebben az útválasztási mintában a csevegési előzményeket kezelő szolgáltató a beszélgetés hiteles forrása. Üzeneteket tárolhat az ügynök munkamenetében vagy az alkalmazás tulajdonában lévő tárolóban.

Az Agent Frameworkben a hívó által felügyelt előzmények közé tartozik a helyi munkamenet állapota és az egyéni csevegési előzmények tárolója. Az inferencia-szolgáltatás által felügyelt előzményadatok a szolgáltatás által felügyelt tárolásnak felelnek meg.

Egy ChatClientAgent esetében az útválasztó csevegőügyfél a ügynök-folyamat csevegőügyfél-rétegében található. Az ügynök és a munkamenete változatlan marad, miközben az útválasztó kliens minden kéréshez a több elnevezett IChatClient példány egyikét választja ki.

Az irányított kérések a következő sorrendet követik:

  1. A csevegési előzmények szolgáltatója betölti a beszélgetési előzményeket.
  2. Az ügynök egyesíti az előzményeket az aktuális forduló bemenetével.
  3. Az útválasztó kliens kiválasztja az aktív chatklienst ehhez a munkamenethez.
  4. A kijelölt ügyfél megkapja a teljes kérelmet.
  5. A csevegési előzmények szolgáltatója a futtatás után tárolja az új üzeneteket.

Mivel a kijelölt ügyfél megkapja a szolgáltató által betöltött előzményeket, az alkalmazás a beszélgetés manuális újraépítése nélkül módosíthatja az útvonalakat.

A .NET SDK tartalmazza a kísérleti RoutePersistingRoutingChatClient. Állítsa be a kezdeti útvonalat RoutePersistingRoutingChatClientOptions.DefaultRoute, vizsgálja meg egy munkamenet útvonalát GetActiveRoute, és módosítsa a következővel SetActiveRoute: . Ha nem állít be alapértelmezett útvonalat, az ügyfél a konstrukció során megadott első útvonalat használja.

A Microsoft.Extensions.AI területen további útválasztó kliensek is léteznek, amelyek lehetővé teszik további útválasztási stratégiák alkalmazását.

A teljes C#-implementációhoz tekintse meg a többmodelles útválasztási mintát .

Important

Minden útvonalként regisztrált csevegőügyfélnek hívó által felügyelt előzményeket kell használnia, amelyeket egy csevegési előzményszolgáltató biztosít. A szolgáltató ezt az előzményt a munkamenetben vagy az alkalmazás tulajdonában lévő tárolóban tárolhatja. Ne regisztráljon olyan útvonalat, amely következtetési szolgáltatás által felügyelt beszélgetési előzményeket használ.

Python támogatás jelenleg nem érhető el.

A Go-támogatás jelenleg nem érhető el.

Következő lépések