Compartir a través de


FunctionInvokingChatClient Clase

Definición

Cliente de chat de delegación que invoca funciones definidas en ChatOptions. Incluya esto en una canalización de chat para resolver automáticamente las llamadas de función.

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
Herencia
FunctionInvokingChatClient

Comentarios

Cuando este cliente recibe una FunctionCallContent en una respuesta de chat de su interior IChatClient, responde invocando la correspondiente AIFunction definida en Tools (o en AdditionalTools), generando un FunctionResultContent que devuelve al cliente interno. Este bucle se repite hasta que no hay más llamadas de función para realizar o hasta que se cumpla otra condición de detención, como alcanzar MaximumIterationsPerRequest.

Si una función solicitada es , AIFunctionDeclaration pero no , AIFunctionno FunctionInvokingChatClient intentará invocarla y, en su lugar, permitirá que FunctionCallContent se devuelva al autor de la llamada. A continuación, es responsabilidad del autor de la llamada crear el adecuado FunctionResultContent para esa llamada y enviarlo de nuevo como parte de una solicitud posterior.

Además, si una función solicitada es , ApprovalRequiredAIFunctionno FunctionInvokingChatClient intentará invocarla directamente. En su lugar, reemplazará por FunctionCallContent un ToolApprovalRequestContent objeto que encapsula e FunctionCallContent indica que la función requiere aprobación antes de poder invocarse. A continuación, el autor de la llamada es responsable de responder a esa solicitud de aprobación mediante el envío de un correspondiente ToolApprovalResponseContent en una solicitud posterior. FunctionInvokingChatClient Después, procesará esa respuesta de aprobación e invocará la función según corresponda.

Debido a la naturaleza de las interacciones con un subyacente IChatClient, si se recibe alguno FunctionCallContent para una función que requiere aprobación, todo recibido FunctionCallContent en esa misma respuesta también requerirá aprobación, incluso si no ApprovalRequiredAIFunction eran instancias. Si se trata de un problema, considere la posibilidad de solicitar que no se realicen varias solicitudes de llamada de herramienta en una sola respuesta estableciendo AllowMultipleToolCallsfalseen .

Una FunctionInvokingChatClient instancia es segura para subprocesos para uso simultáneo, siempre y cuando las AIFunction instancias empleadas como parte del proporcionado ChatOptions también sean seguras. La AllowConcurrentInvocation propiedad se puede usar para controlar si varias solicitudes de invocación de función como parte de la misma solicitud son invocables simultáneamente, pero incluso con ese establecido false en (valor predeterminado), varias solicitudes simultáneas a esta misma instancia y el uso de las mismas herramientas podrían dar lugar a que esas herramientas se usen simultáneamente (una por solicitud). Por ejemplo, una función que tiene acceso a HttpContext de un ASP.NET solicitud web específica solo debe usarse como parte de una única ChatOptions a la vez y solo con AllowConcurrentInvocation establecido falseen , en caso de que el cliente interno decida emitir varias solicitudes de invocación a esa misma función.

Constructores

Nombre Description
FunctionInvokingChatClient(IChatClient, ILoggerFactory, IServiceProvider)

Inicializa una nueva instancia de la clase FunctionInvokingChatClient.

Propiedades

Nombre Description
AdditionalTools

Obtiene o establece una colección de herramientas adicionales que el cliente puede invocar.

AllowConcurrentInvocation

Obtiene o establece un valor que indica si se va a permitir la invocación simultánea de funciones.

CurrentContext

Obtiene o establece el para FunctionInvocationContext la invocación de función actual.

FunctionInvocationServices

Obtiene el IServiceProvider objeto especificado al construir , FunctionInvokingChatClientsi existe.

FunctionInvoker

Obtiene o establece un delegado usado para invocar AIFunction instancias.

IncludeDetailedErrors

Obtiene o establece un valor que indica si se debe incluir información detallada de excepciones en el historial de chat al llamar al subyacente IChatClient.

InnerClient

Obtiene el objeto interno IChatClient.

(Heredado de DelegatingChatClient)
MaximumConsecutiveErrorsPerRequest

Obtiene o establece el número máximo de iteraciones consecutivas que pueden producir un error.

MaximumIterationsPerRequest

Obtiene o establece el número máximo de iteraciones por solicitud.

TerminateOnUnknownCalls

Obtiene o establece un valor que indica si una solicitud para llamar a una función desconocida debe finalizar el bucle de llamada de función.

Métodos

Nombre Description
CreateResponseMessages(ReadOnlySpan<FunctionInvokingChatClient.FunctionInvocationResult>)

Crea uno o varios mensajes de respuesta para los resultados de la invocación de función.

Dispose()

Realiza tareas definidas por la aplicación asociadas a la liberación, liberación o restablecimiento de recursos no administrados.

(Heredado de DelegatingChatClient)
Dispose(Boolean)

Proporciona un mecanismo para liberar recursos no administrados.

(Heredado de DelegatingChatClient)
GetResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken)

Envía mensajes de chat y devuelve la respuesta.

GetService(Type, Object)

Solicita un IChatClient objeto del tipo serviceTypeespecificado.

(Heredado de DelegatingChatClient)
GetStreamingResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken)

Envía mensajes de chat y transmite la respuesta.

InvokeFunctionAsync(FunctionInvocationContext, CancellationToken)

Este método invocará la función dentro del bloque try.

Métodos de extensión

Nombre Description
AsBuilder(IChatClient)

Crea un nuevo ChatClientBuilder uso mediante innerClient como su cliente interno.

GetRequiredService(IChatClient, Type, Object)

Solicita un IChatClient objeto del tipo serviceType especificado y produce una excepción si no está disponible.

GetRequiredService<TService>(IChatClient, Object)

Pide al IChatClient objeto de tipo TService y produce una excepción si no está disponible.

GetResponseAsync(IChatClient, ChatMessage, ChatOptions, CancellationToken)

Envía un mensaje de chat y devuelve los mensajes de respuesta.

GetResponseAsync(IChatClient, String, ChatOptions, CancellationToken)

Envía un mensaje de texto de chat de usuario y devuelve los mensajes de respuesta.

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

Envía un mensaje de chat y solicita una respuesta que coincida con el tipo T.

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

Envía un mensaje de chat y solicita una respuesta que coincida con el tipo T.

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

Envía mensajes de chat, solicitando una respuesta que coincida con el tipo T.

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

Envía mensajes de chat, solicitando una respuesta que coincida con el tipo T.

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

Envía un mensaje de texto de chat de usuario, solicitando una respuesta que coincida con el tipo T.

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

Envía un mensaje de texto de chat de usuario, solicitando una respuesta que coincida con el tipo T.

GetService<TService>(IChatClient, Object)

Pide al IChatClient objeto de tipo TService.

GetStreamingResponseAsync(IChatClient, ChatMessage, ChatOptions, CancellationToken)

Envía un mensaje de chat y transmite los mensajes de respuesta.

GetStreamingResponseAsync(IChatClient, String, ChatOptions, CancellationToken)

Envía un mensaje de texto de chat de usuario y transmite los mensajes de respuesta.

Se aplica a