Partager via


FunctionInvokingChatClient Classe

Définition

Un client de conversation délégué qui appelle des fonctions définies sur ChatOptions. Incluez-le dans un pipeline de conversation pour résoudre automatiquement les appels de fonction.

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
Héritage
FunctionInvokingChatClient

Remarques

Lorsque ce client reçoit une FunctionCallContent réponse de conversation à partir de son intérieur IChatClient, il répond en appelant le correspondant AIFunction défini dans Tools (ou dans AdditionalTools), en produisant un FunctionResultContent retour au client interne. Cette boucle est répétée jusqu’à ce qu’il n’y ait plus d’appels de fonction à effectuer, ou jusqu’à ce qu’une autre condition d’arrêt soit remplie, comme atteindre MaximumIterationsPerRequest.

Si une fonction demandée est une AIFunctionDeclaration fonction mais pas une AIFunction, elle FunctionInvokingChatClient n’essaie pas de l’appeler, et autorise à la place cela FunctionCallContent à passer à l’appelant. Il incombe ensuite à l’appelant de créer l’élément approprié FunctionResultContent pour cet appel et de le renvoyer dans le cadre d’une demande ultérieure.

En outre, si une fonction demandée est une ApprovalRequiredAIFunctionfonction, elle FunctionInvokingChatClient ne tente pas de l’appeler directement. Au lieu de cela, il remplace cela FunctionCallContent par un ToolApprovalRequestContent qui encapsule et FunctionCallContent indique que la fonction nécessite une approbation avant qu’elle puisse être appelée. L’appelant est ensuite chargé de répondre à cette demande d’approbation en envoyant un correspondant ToolApprovalResponseContent dans une demande ultérieure. Le FunctionInvokingChatClient processus traitera ensuite cette réponse d’approbation et appellera la fonction selon les besoins.

En raison de la nature des interactions avec un sous-jacent IChatClient, si un FunctionCallContent élément est reçu pour une fonction qui nécessite une approbation, tous reçus FunctionCallContent dans cette même réponse nécessitent également l’approbation, même s’ils n’étaient pas ApprovalRequiredAIFunction des instances. S’il s’agit d’une préoccupation, envisagez de demander que plusieurs demandes d’appel d’outil ne soient pas effectuées dans une seule réponse, en définissant AllowMultipleToolCalls sur false.

Une FunctionInvokingChatClient instance est thread-safe pour une utilisation simultanée tant que les AIFunction instances utilisées dans le cadre de l’offre sont ChatOptions également sécurisées. La AllowConcurrentInvocation propriété peut être utilisée pour contrôler si plusieurs demandes d’appel de fonction dans le cadre de la même requête sont invocables simultanément, mais même avec cette valeur définie false sur (valeur par défaut), plusieurs demandes simultanées à cette même instance et l’utilisation des mêmes outils peuvent entraîner l’utilisation simultanée de ces outils (un par demande). Par exemple, une fonction qui accède à HttpContext d’une requête web ASP.NET spécifique ne doit être utilisée que dans le cadre d’un seul ChatOptions à la fois, et uniquement avec AllowConcurrentInvocation défini sur false, dans le cas où le client interne a décidé d’émettre plusieurs demandes d’appel à cette même fonction.

Constructeurs

Nom Description
FunctionInvokingChatClient(IChatClient, ILoggerFactory, IServiceProvider)

Initialise une nouvelle instance de la classe FunctionInvokingChatClient.

Propriétés

Nom Description
AdditionalTools

Obtient ou définit une collection d’outils supplémentaires que le client peut appeler.

AllowConcurrentInvocation

Obtient ou définit une valeur indiquant s’il faut autoriser l’appel simultané de fonctions.

CurrentContext

Obtient ou définit l’appel FunctionInvocationContext de fonction actuel.

FunctionInvocationServices

Obtient la IServiceProvider valeur spécifiée lors de la construction du FunctionInvokingChatClient, le cas échéant.

FunctionInvoker

Obtient ou définit un délégué utilisé pour appeler des AIFunction instances.

IncludeDetailedErrors

Obtient ou définit une valeur indiquant si les informations d’exception détaillées doivent être incluses dans l’historique des conversations lors de l’appel du sous-jacent IChatClient.

InnerClient

Obtient le fichier interne IChatClient.

(Hérité de DelegatingChatClient)
MaximumConsecutiveErrorsPerRequest

Obtient ou définit le nombre maximal d’itérations consécutives autorisées à échouer avec une erreur.

MaximumIterationsPerRequest

Obtient ou définit le nombre maximal d’itérations par requête.

TerminateOnUnknownCalls

Obtient ou définit une valeur indiquant si une demande d’appel d’une fonction inconnue doit mettre fin à la boucle d’appel de fonction.

Méthodes

Nom Description
CreateResponseMessages(ReadOnlySpan<FunctionInvokingChatClient.FunctionInvocationResult>)

Crée un ou plusieurs messages de réponse pour les résultats d’appel de fonction.

Dispose()

Effectue des tâches définies par l’application associées à la libération, à la libération ou à la réinitialisation des ressources non managées.

(Hérité de DelegatingChatClient)
Dispose(Boolean)

Fournit un mécanisme permettant de libérer des ressources non managées.

(Hérité de DelegatingChatClient)
GetResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken)

Envoie des messages de conversation et retourne la réponse.

GetService(Type, Object)

Demande l’objet IChatClient du type serviceTypespécifié.

(Hérité de DelegatingChatClient)
GetStreamingResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken)

Envoie des messages de conversation et diffuse la réponse.

InvokeFunctionAsync(FunctionInvocationContext, CancellationToken)

Cette méthode appelle la fonction dans le bloc try.

Méthodes d’extension

Nom Description
AsBuilder(IChatClient)

Crée une nouvelle ChatClientBuilder utilisation innerClient en tant que client interne.

GetRequiredService(IChatClient, Type, Object)

Demande l’objet IChatClient du type serviceType spécifié et lève une exception si elle n’est pas disponible.

GetRequiredService<TService>(IChatClient, Object)

Demande l’objet IChatClient de type TService et lève une exception si un objet n’est pas disponible.

GetResponseAsync(IChatClient, ChatMessage, ChatOptions, CancellationToken)

Envoie un message de conversation et retourne les messages de réponse.

GetResponseAsync(IChatClient, String, ChatOptions, CancellationToken)

Envoie un sms de conversation utilisateur et retourne les messages de réponse.

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

Envoie un message de conversation, en demandant une réponse correspondant au type T.

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

Envoie un message de conversation, en demandant une réponse correspondant au type T.

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

Envoie des messages de conversation, en demandant une réponse correspondant au type T.

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

Envoie des messages de conversation, en demandant une réponse correspondant au type T.

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

Envoie un sms de conversation utilisateur, demandant une réponse correspondant au type T.

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

Envoie un sms de conversation utilisateur, demandant une réponse correspondant au type T.

GetService<TService>(IChatClient, Object)

Demande l’objet IChatClient de type TService.

GetStreamingResponseAsync(IChatClient, ChatMessage, ChatOptions, CancellationToken)

Envoie un message de conversation et diffuse les messages de réponse.

GetStreamingResponseAsync(IChatClient, String, ChatOptions, CancellationToken)

Envoie un sms de conversation utilisateur et diffuse les messages de réponse.

S’applique à