Condividi tramite


FunctionInvokingChatClient Classe

Definizione

Client di chat di delega che richiama le funzioni definite in ChatOptions. Includerlo in una pipeline di chat per risolvere automaticamente le chiamate di funzione.

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
Ereditarietà
FunctionInvokingChatClient

Commenti

Quando questo client riceve un oggetto FunctionCallContent in una risposta di chat dal suo interno IChatClient, risponde richiamando il corrispondente AIFunction definito in Tools (o in AdditionalTools), producendo un oggetto FunctionResultContent che invia al client interno. Questo ciclo viene ripetuto fino a quando non sono presenti altre chiamate di funzione da effettuare o fino a quando non viene soddisfatta un'altra condizione di arresto, ad esempio il raggiungimento di MaximumIterationsPerRequest.

Se una funzione richiesta è un oggetto AIFunctionDeclaration ma non un AIFunctionoggetto , non FunctionInvokingChatClient tenterà di richiamarlo e invece di consentirlo FunctionCallContent di passare di nuovo al chiamante. È quindi responsabilità del chiamante creare il appropriato FunctionResultContent per tale chiamata e inviarlo come parte di una richiesta successiva.

Inoltre, se una funzione richiesta è un ApprovalRequiredAIFunctionoggetto , non FunctionInvokingChatClient tenterà di richiamarla direttamente. Sostituirà invece con FunctionCallContent un ToolApprovalRequestContent oggetto che esegue il FunctionCallContent wrapping di e indica che la funzione richiede l'approvazione prima che possa essere richiamata. Il chiamante è quindi responsabile della risposta alla richiesta di approvazione inviando un oggetto corrispondente ToolApprovalResponseContent in una richiesta successiva. Elaborerà FunctionInvokingChatClient quindi la risposta di approvazione e richiamerà la funzione in base alle esigenze.

A causa della natura delle interazioni con un oggetto sottostante IChatClient, se viene FunctionCallContent ricevuto un oggetto per una funzione che richiede l'approvazione, tutto ricevuto FunctionCallContent nella stessa risposta richiederà anche l'approvazione, anche se non ApprovalRequiredAIFunction erano istanze. Se si tratta di un problema, è consigliabile richiedere che più richieste di chiamata dello strumento non vengano effettuate in una singola risposta, impostando su AllowMultipleToolCallsfalse.

Un'istanza FunctionInvokingChatClient è thread-safe per l'uso simultaneo, purché le AIFunction istanze usate come parte dell'oggetto fornito ChatOptions siano sicure. La AllowConcurrentInvocation proprietà può essere usata per controllare se più richieste di chiamata di funzione come parte della stessa richiesta sono chiamate simultaneamente, ma anche con tale impostazione su false (impostazione predefinita), più richieste simultanee alla stessa istanza e l'uso degli stessi strumenti potrebbe comportare l'uso simultaneo di tali strumenti (uno per richiesta). Ad esempio, una funzione che accede a HttpContext di una specifica richiesta Web di ASP.NET deve essere usata solo come parte di un singolo ChatOptions oggetto alla volta e solo con AllowConcurrentInvocation impostato su false, nel caso in cui il client interno ha deciso di inviare più richieste di chiamata a tale funzione.

Costruttori

Nome Descrizione
FunctionInvokingChatClient(IChatClient, ILoggerFactory, IServiceProvider)

Inizializza una nuova istanza della classe FunctionInvokingChatClient.

Proprietà

Nome Descrizione
AdditionalTools

Ottiene o imposta una raccolta di strumenti aggiuntivi che il client può richiamare.

AllowConcurrentInvocation

Ottiene o imposta un valore che indica se consentire la chiamata simultanea delle funzioni.

CurrentContext

Ottiene o imposta l'oggetto FunctionInvocationContext per la chiamata alla funzione corrente.

FunctionInvocationServices

Ottiene l'oggetto IServiceProvider specificato durante la costruzione dell'oggetto FunctionInvokingChatClient, se presente.

FunctionInvoker

Ottiene o imposta un delegato utilizzato per richiamare AIFunction le istanze.

IncludeDetailedErrors

Ottiene o imposta un valore che indica se le informazioni dettagliate sulle eccezioni devono essere incluse nella cronologia delle chat quando si chiama l'oggetto sottostante IChatClient.

InnerClient

Ottiene l'oggetto interno IChatClient.

(Ereditato da DelegatingChatClient)
MaximumConsecutiveErrorsPerRequest

Ottiene o imposta il numero massimo di iterazioni consecutive che possono avere esito negativo con un errore.

MaximumIterationsPerRequest

Ottiene o imposta il numero massimo di iterazioni per richiesta.

TerminateOnUnknownCalls

Ottiene o imposta un valore che indica se una richiesta di chiamare una funzione sconosciuta deve terminare il ciclo di chiamata della funzione.

Metodi

Nome Descrizione
CreateResponseMessages(ReadOnlySpan<FunctionInvokingChatClient.FunctionInvocationResult>)

Crea uno o più messaggi di risposta per i risultati della chiamata di funzione.

Dispose()

Esegue attività definite dall'applicazione associate alla liberazione, al rilascio o alla reimpostazione di risorse non gestite.

(Ereditato da DelegatingChatClient)
Dispose(Boolean)

Fornisce un meccanismo per il rilascio di risorse non gestite.

(Ereditato da DelegatingChatClient)
GetResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken)

Invia messaggi di chat e restituisce la risposta.

GetService(Type, Object)

Richiede un IChatClient oggetto del tipo serviceTypespecificato.

(Ereditato da DelegatingChatClient)
GetStreamingResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken)

Invia messaggi di chat e trasmette la risposta.

InvokeFunctionAsync(FunctionInvocationContext, CancellationToken)

Questo metodo richiamerà la funzione all'interno del blocco try.

Metodi di estensione

Nome Descrizione
AsBuilder(IChatClient)

Crea un nuovo ChatClientBuilder oggetto utilizzando innerClient come client interno.

GetRequiredService(IChatClient, Type, Object)

Chiede l'oggetto IChatClient per un oggetto del tipo serviceType specificato e genera un'eccezione se non ne è disponibile uno.

GetRequiredService<TService>(IChatClient, Object)

Chiede l'oggetto IChatClient per un oggetto di tipo TService e genera un'eccezione se non ne è disponibile uno.

GetResponseAsync(IChatClient, ChatMessage, ChatOptions, CancellationToken)

Invia un messaggio di chat e restituisce i messaggi di risposta.

GetResponseAsync(IChatClient, String, ChatOptions, CancellationToken)

Invia un SMS di chat utente e restituisce i messaggi di risposta.

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

Invia un messaggio di chat, richiedendo una risposta corrispondente al tipo T.

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

Invia un messaggio di chat, richiedendo una risposta corrispondente al tipo T.

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

Invia messaggi di chat, richiedendo una risposta corrispondente al tipo T.

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

Invia messaggi di chat, richiedendo una risposta corrispondente al tipo T.

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

Invia un SMS di chat utente, richiedendo una risposta corrispondente al tipo T.

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

Invia un SMS di chat utente, richiedendo una risposta corrispondente al tipo T.

GetService<TService>(IChatClient, Object)

Chiede all'oggetto IChatClient di tipo TService.

GetStreamingResponseAsync(IChatClient, ChatMessage, ChatOptions, CancellationToken)

Invia un messaggio di chat e trasmette i messaggi di risposta.

GetStreamingResponseAsync(IChatClient, String, ChatOptions, CancellationToken)

Invia un SMS di chat utente e trasmette i messaggi di risposta.

Si applica a