FunctionInvokingChatClient Osztály

Definíció

Egy delegált csevegőügyfél, amely meghívja a megadott ChatOptionsfüggvényeket. Ezt belefoglalhatja egy csevegési folyamatba a függvényhívások automatikus feloldásához.

public ref class FunctionInvokingChatClient : Microsoft::Extensions::AI::DelegatingChatClient
public class FunctionInvokingChatClient : Microsoft.Extensions.AI.DelegatingChatClient
type FunctionInvokingChatClient = class
    inherit DelegatingChatClient
Public Class FunctionInvokingChatClient
Inherits DelegatingChatClient
Öröklődés
FunctionInvokingChatClient

Megjegyzések

Amikor ez az ügyfél egy csevegési választ kap FunctionCallContent a belsőtőlIChatClient, a belső ügyfélnek visszaküldő, a (vagy a AdditionalToolsbenne) FunctionResultContent meghatározott Tools megfelelő AIFunction meghívásával válaszol. Ez a ciklus addig ismétlődik, amíg nincs több függvényhívás, vagy amíg egy másik leállítási feltétel nem teljesül, például el nem éri a műveletet MaximumIterationsPerRequest.

Ha a kért függvény egy AIFunctionDeclaration de nem egy AIFunction, akkor a FunctionInvokingChatClient rendszer nem próbálja meg meghívni, és ehelyett engedélyezi, hogy FunctionCallContent a hívónak továbbítsa. Ezután a hívó felelőssége, hogy létrehozza a megfelelőt FunctionResultContent a híváshoz, és egy későbbi kérés részeként küldje vissza.

Továbbá, ha a kért függvény egy ApprovalRequiredAIFunction, akkor a FunctionInvokingChatClient rendszer nem próbálja meg közvetlenül meghívni. Ehelyett lecseréli azt FunctionCallContent egy olyanra ToolApprovalRequestContent , amely becsomagolja a FunctionCallContent függvényt, és azt jelzi, hogy a függvény jóváhagyást igényel, mielőtt meghívható lenne. Ezt követően a hívó felel azért, hogy válaszoljon a jóváhagyási kérelemre egy későbbi kérésben szereplő megfelelő ToolApprovalResponseContent elküldésével. Ezt FunctionInvokingChatClient követően feldolgozzuk a jóváhagyási választ, és szükség szerint meghívjuk a függvényt.

Az alapul szolgáló IChatClientfüggvényekkel folytatott interakciók jellege miatt , ha egy jóváhagyást igénylő függvényhez kapnak ilyeneket FunctionCallContent , az ugyanabban a válaszban kapott FunctionCallContent összes művelet jóváhagyást is igényel, még akkor is, ha azok nem ApprovalRequiredAIFunction példányok voltak. Ha ez aggodalomra ad okot, kérje meg, hogy több eszközhívási kérés ne legyen egyetlen válaszban, a következő beállítással AllowMultipleToolCallsfalse: .

A FunctionInvokingChatClient példányok szálbiztosak egyidejű használatra, amennyiben a AIFunction megadott ChatOptions példányok is biztonságosak. A AllowConcurrentInvocation tulajdonság segítségével szabályozható, hogy ugyanazon kérés részeként több függvényhívási kérés egyidejűleg is kérhető-e, de még ha az alapértelmezett értékre van állítva false is, ugyanazon példány több egyidejű kérése és ugyanazon eszközök használata azt eredményezheti, hogy ezek az eszközök egyidejűleg (kérésenként egy) lesznek használatban. Egy adott ASP.NET webkérelem HttpContextjéhez hozzáférő függvényt például egyszerre csak egyetlen ChatOptions részeként szabad használni, és csak akkor, ha a AllowConcurrentInvocationfalse értékre van állítva, abban az esetben, ha a belső ügyfél úgy döntött, hogy több meghívási kérelmet ad ki ugyanarra a függvényre.

Konstruktorok

Name Description
FunctionInvokingChatClient(IChatClient, ILoggerFactory, IServiceProvider)

Inicializálja a FunctionInvokingChatClient osztály új példányát.

Tulajdonságok

Name Description
AdditionalTools

Lekéri vagy beállítja az ügyfél által meghívható további eszközök gyűjteményét.

AllowConcurrentInvocation

Lekéri vagy beállít egy értéket, amely jelzi, hogy engedélyezi-e a függvények egyidejű meghívását.

CurrentContext

Lekéri vagy beállítja az FunctionInvocationContext aktuális függvényhívást.

FunctionInvocationServices

Lekéri a IServiceProvider megadott értéket a FunctionInvokingChatClient( ha van) létrehozásakor.

FunctionInvoker

Lekéri vagy beállítja a példányok meghívásához AIFunction használt meghatalmazottat.

IncludeDetailedErrors

Beolvas vagy beállít egy értéket, amely jelzi, hogy a mögöttes IChatClienthíváskor a csevegési előzményekben szerepelnie kell-e a részletes kivételadatoknak.

InnerClient

Lekéri a belsőt IChatClient.

(Öröklődés forrása DelegatingChatClient)
MaximumConsecutiveErrorsPerRequest

Lekéri vagy beállítja az egymást követő iterációk maximális számát, amelyek hiba esetén meghiúsulhatnak.

MaximumIterationsPerRequest

Lekéri vagy beállítja a kérelemenkénti iterációk maximális számát.

TerminateOnUnknownCalls

Lekéri vagy beállít egy értéket, amely jelzi, hogy egy ismeretlen függvény meghívására irányuló kérésnek le kell-e mondania a függvényhívási ciklust.

Metódusok

Name Description
CreateResponseMessages(ReadOnlySpan<FunctionInvokingChatClient.FunctionInvocationResult>)

Egy vagy több válaszüzenetet hoz létre a függvényhívási eredményekhez.

Dispose()

Végrehajtja a nem felügyelt erőforrások felszabadításával, felszabadításával vagy alaphelyzetbe állításával kapcsolatos alkalmazásalapú feladatokat.

(Öröklődés forrása DelegatingChatClient)
Dispose(Boolean)

Mechanizmust biztosít a nem felügyelt erőforrások kiadásához.

(Öröklődés forrása DelegatingChatClient)
GetResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken)

Csevegőüzeneteket küld, és visszaadja a választ.

GetService(Type, Object)

IChatClient A megadott típusú serviceTypeobjektumot kérdezi le.

(Öröklődés forrása DelegatingChatClient)
GetStreamingResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken)

Csevegőüzeneteket küld, és streameli a választ.

InvokeFunctionAsync(FunctionInvocationContext, CancellationToken)

Ez a metódus meghívja a függvényt a próbablokkon belül.

Bővítő metódusok

Name Description
AsBuilder(IChatClient)

Új használatot ChatClientBuilderinnerClient hoz létre belső ügyfélként.

GetRequiredService(IChatClient, Type, Object)

IChatClient A megadott típusú serviceType objektumot kérdezi le, és kivételt jelez, ha nem érhető el.

GetRequiredService<TService>(IChatClient, Object)

IChatClient Egy típusú TService objektumot kérdez le, és kivételt jelez, ha nem érhető el.

GetResponseAsync(IChatClient, ChatMessage, ChatOptions, CancellationToken)

Csevegőüzenetet küld, és visszaadja a válaszüzeneteket.

GetResponseAsync(IChatClient, String, ChatOptions, CancellationToken)

Csevegőüzenetet küld a felhasználónak, és visszaadja a válaszüzeneteket.

GetResponseAsync<T>(IChatClient, ChatMessage, ChatOptions, Nullable<Boolean>, CancellationToken)

Csevegőüzenetet küld, amely a típusnak Tmegfelelő választ kér.

GetResponseAsync<T>(IChatClient, ChatMessage, JsonSerializerOptions, ChatOptions, Nullable<Boolean>, CancellationToken)

Csevegőüzenetet küld, amely a típusnak Tmegfelelő választ kér.

GetResponseAsync<T>(IChatClient, IEnumerable<ChatMessage>, ChatOptions, Nullable<Boolean>, CancellationToken)

Csevegőüzeneteket küld, és a típusnak Tmegfelelő választ kér.

GetResponseAsync<T>(IChatClient, IEnumerable<ChatMessage>, JsonSerializerOptions, ChatOptions, Nullable<Boolean>, CancellationToken)

Csevegőüzeneteket küld, és a típusnak Tmegfelelő választ kér.

GetResponseAsync<T>(IChatClient, String, ChatOptions, Nullable<Boolean>, CancellationToken)

Csevegőüzenetet küld a felhasználónak, amely a típusnak Tmegfelelő választ kér.

GetResponseAsync<T>(IChatClient, String, JsonSerializerOptions, ChatOptions, Nullable<Boolean>, CancellationToken)

Csevegőüzenetet küld a felhasználónak, amely a típusnak Tmegfelelő választ kér.

GetService<TService>(IChatClient, Object)

IChatClient Egy típusú TServiceobjektumot kérdez le.

GetStreamingResponseAsync(IChatClient, ChatMessage, ChatOptions, CancellationToken)

Csevegőüzenetet küld, és streameli a válaszüzeneteket.

GetStreamingResponseAsync(IChatClient, String, ChatOptions, CancellationToken)

Csevegőüzenetet küld a felhasználónak, és streameli a válaszüzeneteket.

A következőre érvényes: