Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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:
- A csevegési előzmények szolgáltatója betölti a beszélgetési előzményeket.
- Az ügynök egyesíti az előzményeket az aktuális forduló bemenetével.
- Az útválasztó kliens kiválasztja az aktív chatklienst ehhez a munkamenethez.
- A kijelölt ügyfél megkapja a teljes kérelmet.
- 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.