FunctionInvokingChatClient Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Um cliente de chat de delegação que invoca funções definidas em ChatOptions. Inclua isto num pipeline de chat para resolver automaticamente chamadas de funções.
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
Observações
Quando este cliente recebe uma FunctionCallContent resposta num chat do seu cliente interno IChatClient, responde invocando o correspondente AIFunction definido em Tools (ou em AdditionalTools), produzindo um FunctionResultContent que envia de volta ao cliente interno. Este ciclo repete-se até que não haja mais chamadas de função a fazer, ou até que outra condição de paragem seja cumprida, como atingir MaximumIterationsPerRequest.
Se uma função solicitada for um AIFunctionDeclaration mas não um AIFunction, não FunctionInvokingChatClient tentará invocá-la, permitindo que ela FunctionCallContent passe novamente para o chamador. É então responsabilidade do interlocutor criar o apropriado FunctionResultContent para essa chamada e enviá-lo de volta como parte de um pedido subsequente.
Além disso, se uma função solicitada for um ApprovalRequiredAIFunction, o FunctionInvokingChatClient não tentará invocá-la diretamente. Em vez disso, substituirá isso FunctionCallContent por um ToolApprovalRequestContent que envolve o FunctionCallContent e indica que a função requer aprovação antes de poder ser invocada. O interlocutor é então responsável por responder a esse pedido de aprovação, enviando um correspondente ToolApprovalResponseContent num pedido subsequente. Depois, FunctionInvokingChatClient processam essa resposta de aprovação e invocam a função conforme apropriado.
Devido à natureza das interações com um subjacente IChatClient, se alguma FunctionCallContent for recebida para uma função que requer aprovação, todas as recebidas FunctionCallContent nessa mesma resposta também precisarão de aprovação, mesmo que não ApprovalRequiredAIFunction fossem instâncias. Se isto for uma preocupação, considere pedir que não sejam feitas múltiplas chamadas de ferramenta numa única resposta, definindo AllowMultipleToolCalls para false.
Uma FunctionInvokingChatClient instância é segura para uso concorrente desde que as AIFunction instâncias usadas como parte do fornecido ChatOptions também sejam seguras. A AllowConcurrentInvocation propriedade pode ser usada para controlar se múltiplos pedidos de invocação de funções como parte do mesmo pedido são invocáveis em simultâneo, mas mesmo com isso definido para false (o padrão), múltiplos pedidos concorrentes para esta mesma instância e o uso das mesmas ferramentas podem resultar no uso simultâneo dessas ferramentas (um por pedido). Por exemplo, uma função que acede ao HttpContext de um pedido web ASP.NET específico só deve ser usada como parte de um único ChatOptions de cada vez, e apenas com AllowConcurrentInvocation definido para false, caso o cliente interno decida emitir múltiplos pedidos de invocação para essa mesma função.
Construtores
| Name | Description |
|---|---|
| FunctionInvokingChatClient(IChatClient, ILoggerFactory, IServiceProvider) |
Inicializa uma nova instância da FunctionInvokingChatClient classe. |
Propriedades
| Name | Description |
|---|---|
| AdditionalTools |
Obtém ou define um conjunto de ferramentas adicionais que o cliente pode invocar. |
| AllowConcurrentInvocation |
Recebe ou define um valor que indica se permite a invocação concorrente de funções. |
| CurrentContext |
Obtém ou define para FunctionInvocationContext a invocação da função atual. |
| FunctionInvocationServices |
Obtém o IServiceProvider especificado ao construir o FunctionInvokingChatClient, se existir. |
| FunctionInvoker |
Obtém ou define um delegado usado para invocar AIFunction instâncias. |
| IncludeDetailedErrors |
Recebe ou define um valor que indica se informação detalhada de exceção deve ser incluída 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 podem falhar com um erro. |
| MaximumIterationsPerRequest |
Obtém ou define o número máximo de iterações por pedido. |
| TerminateOnUnknownCalls |
Recebe ou define um valor que indica se um pedido para chamar uma função desconhecida deve terminar o ciclo de chamada da função. |
Métodos
| Name | Description |
|---|---|
| CreateResponseMessages(ReadOnlySpan<FunctionInvokingChatClient.FunctionInvocationResult>) |
Cria uma ou mais mensagens de resposta para os resultados da invocação de funções. |
| Dispose() |
Realiza tarefas definidas pela aplicação associadas à libertação, libertação ou reinício de recursos não geridos. (Herdado de DelegatingChatClient) |
| Dispose(Boolean) |
Fornece um mecanismo para libertar recursos não geridos. (Herdado de DelegatingChatClient) |
| GetResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken) |
Envia mensagens no chat e responde. |
| GetService(Type, Object) |
Pergunta a IChatClient um objeto do tipo |
| GetStreamingResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken) |
Envia mensagens no chat e transmite a resposta em streaming. |
| InvokeFunctionAsync(FunctionInvocationContext, CancellationToken) |
Este método irá invocar a função dentro do bloco try. |