FunctionInvokingChatClient Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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 |
| 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. |