FunctionInvokingChatClient Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Um cliente de chat de delegação que invoca funções definidas em ChatOptions. Inclua isso em um pipeline de chat para resolver chamadas de função automaticamente.
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
- Herança
Comentários
Quando esse cliente recebe uma FunctionCallContent resposta de chat de seu interior IChatClient, ele responde invocando o correspondente AIFunction definido em Tools (ou em AdditionalTools), produzindo um FunctionResultContent que ele envia de volta para o cliente interno. Esse loop é repetido até que não haja mais chamadas de função a serem feitas ou até que outra condição de parada seja atendida, como bater MaximumIterationsPerRequest.
Se uma função solicitada for uma AIFunctionDeclaration , mas não uma AIFunction, não FunctionInvokingChatClient tentará invocá-la e, em vez disso, permitirá que ela FunctionCallContent passe de volta para o chamador. Em seguida, é responsabilidade do chamador criar o apropriado FunctionResultContent para essa chamada e enviá-la de volta como parte de uma solicitação subsequente.
Além disso, se uma função solicitada for uma ApprovalRequiredAIFunction, não FunctionInvokingChatClient tentará invocá-la diretamente. Em vez disso, ele substituirá por FunctionCallContent um ToolApprovalRequestContent que encapsula e FunctionCallContent indica que a função requer aprovação antes de ser invocada. Em seguida, o chamador é responsável por responder a essa solicitação de aprovação enviando um correspondente ToolApprovalResponseContent em uma solicitação subsequente. Em FunctionInvokingChatClient seguida, processará essa resposta de aprovação e invocará a função conforme apropriado.
Devido à natureza das interações com um subjacente IChatClient, se algum FunctionCallContent for recebido para uma função que exija aprovação, todos recebidos FunctionCallContent nessa mesma resposta também exigirão aprovação, mesmo que não ApprovalRequiredAIFunction fossem instâncias. Se isso for uma preocupação, considere solicitar que várias solicitações de chamada de ferramenta não sejam feitas em uma única resposta, definindo AllowMultipleToolCalls como false.
Uma FunctionInvokingChatClient instância é thread-safe para uso simultâneo, desde que as AIFunction instâncias empregadas como parte do fornecido ChatOptions também sejam seguras. A AllowConcurrentInvocation propriedade pode ser usada para controlar se várias solicitações de invocação de função como parte da mesma solicitação são invocadas simultaneamente, mas mesmo com esse conjunto false como (o padrão), várias solicitações simultâneas para essa mesma instância e usar as mesmas ferramentas podem resultar no uso simultâneo dessas ferramentas (uma por solicitação). Por exemplo, uma função que acessa o HttpContext de uma solicitação web ASP.NET específica só deve ser usada como parte de um único ChatOptions de cada vez e apenas com AllowConcurrentInvocation definido como false, caso o cliente interno decidiu emitir várias solicitações de invocação para essa mesma função.
Construtores
| Nome | Description |
|---|---|
| FunctionInvokingChatClient(IChatClient, ILoggerFactory, IServiceProvider) |
Inicializa uma nova instância da classe FunctionInvokingChatClient. |
Propriedades
| Nome | Description |
|---|---|
| AdditionalTools |
Obtém ou define uma coleção de ferramentas adicionais que o cliente pode invocar. |
| AllowConcurrentInvocation |
Obtém ou define um valor que indica se deve permitir invocação simultânea de funções. |
| CurrentContext |
Obtém ou define a FunctionInvocationContext invocação da função atual. |
| FunctionInvocationServices |
Obtém o IServiceProvider especificado ao construir o FunctionInvokingChatClient, se houver. |
| FunctionInvoker |
Obtém ou define um delegado usado para invocar AIFunction instâncias. |
| IncludeDetailedErrors |
Obtém ou define um valor que indica se informações de exceção detalhadas devem ser incluídas no histórico de chat ao chamar o subjacente IChatClient. |
| InnerClient |
Obtém o interior IChatClient. (Herdado de DelegatingChatClient) |
| MaximumConsecutiveErrorsPerRequest |
Obtém ou define o número máximo de iterações consecutivas que têm permissão para falhar com um erro. |
| MaximumIterationsPerRequest |
Obtém ou define o número máximo de iterações por solicitação. |
| TerminateOnUnknownCalls |
Obtém ou define um valor que indica se uma solicitação para chamar uma função desconhecida deve encerrar o loop de chamada de função. |
Métodos
| Nome | Description |
|---|---|
| CreateResponseMessages(ReadOnlySpan<FunctionInvokingChatClient.FunctionInvocationResult>) |
Cria uma ou mais mensagens de resposta para resultados de invocação de função. |
| Dispose() |
Executa tarefas definidas pelo aplicativo associadas à liberação, liberação ou redefinição de recursos não gerenciados. (Herdado de DelegatingChatClient) |
| Dispose(Boolean) |
Fornece um mecanismo para liberar recursos não gerenciados. (Herdado de DelegatingChatClient) |
| GetResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken) |
Envia mensagens de chat e retorna a resposta. |
| GetService(Type, Object) |
Solicita um IChatClient objeto do tipo |
| GetStreamingResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken) |
Envia mensagens de chat e transmite a resposta. |
| InvokeFunctionAsync(FunctionInvocationContext, CancellationToken) |
Esse método invocará a função dentro do bloco try. |