AIFunctionFactory.Create Método

Definición

Sobrecargas

Nombre Description
Create(Delegate, AIFunctionFactoryOptions)

Crea una AIFunction instancia de para un método, especificado a través de un delegado.

Create(MethodInfo, Func<AIFunctionArguments,Object>, AIFunctionFactoryOptions)

Crea una AIFunction instancia de para un método, especificado a través de para MethodInfo un método de instancia y un Func<T,TResult> para construir una instancia del objeto receptor cada vez que se invoca .AIFunction

Create(MethodInfo, Object, AIFunctionFactoryOptions)

Crea una AIFunction instancia de para un método, especificado a través de una MethodInfo instancia y un objeto de destino opcional si el método es un método de instancia.

Create(Delegate, String, String, JsonSerializerOptions)

Crea una AIFunction instancia de para un método, especificado a través de un delegado.

Create(MethodInfo, Object, String, String, JsonSerializerOptions)

Crea una AIFunction instancia de para un método, especificado a través de una MethodInfo instancia y un objeto de destino opcional si el método es un método de instancia.

Create(Delegate, AIFunctionFactoryOptions)

Source:
AIFunctionFactory.cs

Crea una AIFunction instancia de para un método, especificado a través de un delegado.

public:
 static Microsoft::Extensions::AI::AIFunction ^ Create(Delegate ^ method, Microsoft::Extensions::AI::AIFunctionFactoryOptions ^ options);
public static Microsoft.Extensions.AI.AIFunction Create(Delegate method, Microsoft.Extensions.AI.AIFunctionFactoryOptions? options);
static member Create : Delegate * Microsoft.Extensions.AI.AIFunctionFactoryOptions -> Microsoft.Extensions.AI.AIFunction
Public Shared Function Create (method As Delegate, options As AIFunctionFactoryOptions) As AIFunction

Parámetros

method
Delegate

Método que se va a representar a través del objeto creado AIFunction.

options
AIFunctionFactoryOptions

Metadatos que se usarán para invalidar los valores predeterminados inferidos de method.

Devoluciones

Objeto creado AIFunction para invocar method.

Excepciones

method es null.

Un parámetro para method no es serializable.

Comentarios

De forma predeterminada, los parámetros que se van a method originar a partir del AIFunctionArgumentsdiccionario de pares clave-valor y se representan en el esquema JSON de la función, tal como se AIFunctionexpone en el objeto devuelto de JsonSchema. Hay algunas excepciones a esto:

Todos los demás tipos de parámetros están enlazados de forma predeterminada desde el AIFunctionArguments diccionario pasado a InvokeAsync(AIFunctionArguments, CancellationToken) y se incluyen en el esquema JSON generado. Esto se puede invalidar mediante el ConfigureParameterBinding proporcionado a través del options parámetro ; para cada parámetro, el delegado está habilitado para elegir si el parámetro debe incluirse en el esquema generado y cómo se debe enlazar su valor, incluido el control de la opcionalidad (de forma predeterminada, los parámetros necesarios que no se incluyen en el AIFunctionArguments diccionario producirán una excepción). La información de contexto adicional de tipo flexible se puede pasar InvokeAsync(AIFunctionArguments, CancellationToken) a través del AIFunctionArgumentsdiccionario de Context ; el enlace predeterminado omite esta colección, pero un enlace personalizado proporcionado a través ConfigureParameterBinding de puede elegir los argumentos de origen de estos datos.

La serialización predeterminada de parámetros del AIFunctionArguments diccionario permite pasar los valores directamente a la methodinvocación de si el objeto ya es de un tipo compatible. De lo contrario, si el argumento es , JsonElemento , se deserializa en el tipo de parámetro, utilizando SerializerOptions si se proporciona o usa DefaultOptions.JsonNodeJsonDocument Si el argumento es cualquier otra cosa, se recorre de ida y vuelta a través de JSON, serializando el objeto como JSON y, a continuación, deserializándolo al tipo esperado.

En general, los datos proporcionados a través de un AIFunctionArgumentsdiccionario se proporcionan desde un servicio de IA y se deben considerar no validados y que no son de confianza. Para proporcionar datos validados y de confianza a la invocación de , considere la posibilidad de methodtener method que apuntar a un método de instancia en una instancia configurada para contener el estado adecuado. También se puede usar un IServiceProvider parámetro para resolver servicios desde un contenedor de inserción de dependencias.

De forma predeterminada, los valores devueltos se serializan para JsonElement usar "sSerializerOptions" si se proporcionan, o bien mediante DefaultOptionsoptions. Sin embargo, los valores devueltos cuyo tipo declarado es AIContent, un tipo derivado de o cualquier tipo que se pueda asignar desde IEnumerable<T> (por ejemploAIContent[], , List<AIContent>) están en mayúsculas y minúsculas especiales y no se serializan: la función creada devuelve las instancias originales directamente para habilitar a los autores de AIContentllamadas (por ejemplo, ) IChatClientpara realizar pruebas de tipos e implementar un control especializado. Si MarshalResult se proporciona, ese delegado rige el comportamiento en su lugar.

Además del esquema de parámetros, un esquema JSON también se deriva del tipo de valor devuelto del método y se expone a través de la propiedad devuelta AIFunction.ReturnJsonSchema Para los métodos que devuelven Void, Tasko ValueTask, no se genera ningún esquema devuelto (la propiedad es null). Para los métodos que devuelven Task<TResult> o ValueTask<TResult>, el esquema se deriva del tipo de resultado desajustado. La generación de esquemas devueltos se puede excluir a través ExcludeResultSchemade y su generación se rige por options.JsonSchemaCreateOptions

Se aplica a

Create(MethodInfo, Func<AIFunctionArguments,Object>, AIFunctionFactoryOptions)

Source:
AIFunctionFactory.cs

Crea una AIFunction instancia de para un método, especificado a través de para MethodInfo un método de instancia y un Func<T,TResult> para construir una instancia del objeto receptor cada vez que se invoca .AIFunction

public static Microsoft.Extensions.AI.AIFunction Create(System.Reflection.MethodInfo method, Func<Microsoft.Extensions.AI.AIFunctionArguments,object> createInstanceFunc, Microsoft.Extensions.AI.AIFunctionFactoryOptions? options = default);
static member Create : System.Reflection.MethodInfo * Func<Microsoft.Extensions.AI.AIFunctionArguments, obj> * Microsoft.Extensions.AI.AIFunctionFactoryOptions -> Microsoft.Extensions.AI.AIFunction
Public Shared Function Create (method As MethodInfo, createInstanceFunc As Func(Of AIFunctionArguments, Object), Optional options As AIFunctionFactoryOptions = Nothing) As AIFunction

Parámetros

method
MethodInfo

Método de instancia que se va a representar mediante el objeto creado AIFunction.

createInstanceFunc
Func<AIFunctionArguments,Object>

Devolución de llamada usada en cada invocación de función para crear una instancia del tipo en el que se invocará el método method de instancia. Si la instancia devuelta es IAsyncDisposable o IDisposable, se eliminará de después method de completar su invocación.

options
AIFunctionFactoryOptions

Metadatos que se usarán para invalidar los valores predeterminados inferidos de method.

Devoluciones

Objeto creado AIFunction para invocar method.

Excepciones

createInstanceFunc es null.

method contiene un parámetro sin un nombre de parámetro.

Un parámetro a method o su tipo de valor devuelto no es serializable.

Comentarios

Los valores devueltos se serializan para JsonElement usar options.s SerializerOptions. Los argumentos que aún no son del tipo esperado se serializarán con el tipo esperado a través de JSON y mediante options.s SerializerOptions. Si el argumento es , JsonElementJsonDocumento JsonNode, se deserializa directamente. Si el argumento es algo desconocido, se recorre de ida y vuelta a través de JSON, serializando el objeto como JSON y, a continuación, deserializándolo al tipo esperado.

De forma predeterminada, los parámetros que se van a method originar a partir del AIFunctionArgumentsdiccionario de pares clave-valor y se representan en el esquema JSON de la función, tal como se AIFunctionexpone en el objeto devuelto de JsonSchema. Hay algunas excepciones a esto:

Todos los demás tipos de parámetros están enlazados de forma predeterminada desde el AIFunctionArguments diccionario pasado a InvokeAsync(AIFunctionArguments, CancellationToken) y se incluyen en el esquema JSON generado. Esto se puede invalidar mediante el ConfigureParameterBinding proporcionado a través del options parámetro ; para cada parámetro, el delegado está habilitado para elegir si el parámetro debe incluirse en el esquema generado y cómo se debe enlazar su valor, incluido el control de la opcionalidad (de forma predeterminada, los parámetros necesarios que no se incluyen en el AIFunctionArguments diccionario producirán una excepción). La información de contexto adicional de tipo flexible se puede pasar InvokeAsync(AIFunctionArguments, CancellationToken) a través del AIFunctionArgumentsdiccionario de Context ; el enlace predeterminado omite esta colección, pero un enlace personalizado proporcionado a través ConfigureParameterBinding de puede elegir los argumentos de origen de estos datos.

La serialización predeterminada de parámetros del AIFunctionArguments diccionario permite pasar los valores directamente a la methodinvocación de si el objeto ya es de un tipo compatible. De lo contrario, si el argumento es , JsonElemento , se deserializa en el tipo de parámetro, utilizando SerializerOptions si se proporciona o usa DefaultOptions.JsonNodeJsonDocument Si el argumento es cualquier otra cosa, se recorre de ida y vuelta a través de JSON, serializando el objeto como JSON y, a continuación, deserializándolo al tipo esperado.

En general, los datos proporcionados a través de un AIFunctionArgumentsdiccionario se proporcionan desde un servicio de IA y se deben considerar no validados y que no son de confianza. Para proporcionar datos validados y de confianza a la invocación de method, la instancia construida para cada invocación puede contener esos datos, de modo que luego esté disponible para method como datos de instancia. También se puede usar un IServiceProvider parámetro para resolver servicios desde un contenedor de inserción de dependencias.

De forma predeterminada, los valores devueltos se serializan para JsonElement usar "sSerializerOptions" si se proporcionan, o bien mediante DefaultOptionsoptions. Sin embargo, los valores devueltos cuyo tipo declarado es AIContent, un tipo derivado de AIContento cualquier tipo asignable de IEnumerable<T> se devuelven directamente sin serialización. El control de los valores devueltos se puede invalidar a través MarshalResultde .

Además del esquema de parámetros, un esquema JSON también se deriva del tipo de valor devuelto del método y se expone a través de la propiedad devuelta AIFunction.ReturnJsonSchema Para los métodos que devuelven Void, Tasko ValueTask, no se genera ningún esquema devuelto (la propiedad es null). Para los métodos que devuelven Task<TResult> o ValueTask<TResult>, el esquema se deriva del tipo de resultado desajustado. La generación de esquemas devueltos se puede excluir a través ExcludeResultSchemade y su generación se rige por options.JsonSchemaCreateOptions

Se aplica a

Create(MethodInfo, Object, AIFunctionFactoryOptions)

Source:
AIFunctionFactory.cs

Crea una AIFunction instancia de para un método, especificado a través de una MethodInfo instancia y un objeto de destino opcional si el método es un método de instancia.

public:
 static Microsoft::Extensions::AI::AIFunction ^ Create(System::Reflection::MethodInfo ^ method, System::Object ^ target, Microsoft::Extensions::AI::AIFunctionFactoryOptions ^ options);
public static Microsoft.Extensions.AI.AIFunction Create(System.Reflection.MethodInfo method, object? target, Microsoft.Extensions.AI.AIFunctionFactoryOptions? options);
static member Create : System.Reflection.MethodInfo * obj * Microsoft.Extensions.AI.AIFunctionFactoryOptions -> Microsoft.Extensions.AI.AIFunction
Public Shared Function Create (method As MethodInfo, target As Object, options As AIFunctionFactoryOptions) As AIFunction

Parámetros

method
MethodInfo

Método que se va a representar a través del objeto creado AIFunction.

target
Object

Objeto de destino para method si representa un método de instancia. Debe ser null si y solo si method es un método estático.

options
AIFunctionFactoryOptions

Metadatos que se usarán para invalidar los valores predeterminados inferidos de method.

Devoluciones

Objeto creado AIFunction para invocar method.

Excepciones

method representa un método de instancia, pero target es null.

method contiene un parámetro sin un nombre de parámetro.

Un parámetro a method o su tipo de valor devuelto no es serializable.

Comentarios

De forma predeterminada, los parámetros que se van a method originar a partir del AIFunctionArgumentsdiccionario de pares clave-valor y se representan en el esquema JSON de la función, tal como se AIFunctionexpone en el objeto devuelto de JsonSchema. Hay algunas excepciones a esto:

Todos los demás tipos de parámetros están enlazados de forma predeterminada desde el AIFunctionArguments diccionario pasado a InvokeAsync(AIFunctionArguments, CancellationToken) y se incluyen en el esquema JSON generado. Esto se puede invalidar mediante el ConfigureParameterBinding proporcionado a través del options parámetro ; para cada parámetro, el delegado está habilitado para elegir si el parámetro debe incluirse en el esquema generado y cómo se debe enlazar su valor, incluido el control de la opcionalidad (de forma predeterminada, los parámetros necesarios que no se incluyen en el AIFunctionArguments diccionario producirán una excepción). La información de contexto adicional con tipo flexible se puede pasar InvokeAsync(AIFunctionArguments, CancellationToken) a través del AIFunctionArgumentsdiccionario de Context ; el enlace predeterminado omite esta colección, pero un enlace personalizado proporcionado a través ConfigureParameterBinding de puede elegir los argumentos de origen de estos datos.

La serialización predeterminada de parámetros del AIFunctionArguments diccionario permite pasar los valores directamente a la methodinvocación de si el objeto ya es de un tipo compatible. De lo contrario, si el argumento es , JsonElemento , se deserializa en el tipo de parámetro, utilizando SerializerOptions si se proporciona o usa DefaultOptions.JsonNodeJsonDocument Si el argumento es cualquier otra cosa, se recorre de ida y vuelta a través de JSON, serializando el objeto como JSON y, a continuación, deserializándolo al tipo esperado.

En general, los datos proporcionados a través de un AIFunctionArgumentsdiccionario se proporcionan desde un servicio de IA y se deben considerar no validados y que no son de confianza. Para proporcionar datos validados y de confianza a la invocación de , considere la posibilidad de methodtener method que apuntar a un método de instancia en una instancia configurada para contener el estado adecuado. También se puede usar un IServiceProvider parámetro para resolver servicios desde un contenedor de inserción de dependencias.

De forma predeterminada, los valores devueltos se serializan para JsonElement usar "sSerializerOptions" si se proporcionan, o bien mediante DefaultOptionsoptions. Sin embargo, los valores devueltos cuyo tipo declarado es AIContent, un tipo derivado de AIContento cualquier tipo asignable de IEnumerable<T> no se serializan y, en su lugar, se devuelven directamente. El control de los valores devueltos se puede invalidar a través MarshalResultde .

Además del esquema de parámetros, un esquema JSON también se deriva del tipo de valor devuelto del método y se expone a través de la propiedad devuelta AIFunction.ReturnJsonSchema Para los métodos que devuelven Void, Tasko ValueTask, no se genera ningún esquema devuelto (la propiedad es null). Para los métodos que devuelven Task<TResult> o ValueTask<TResult>, el esquema se deriva del tipo de resultado desajustado. La generación de esquemas devueltos se puede excluir a través ExcludeResultSchemade y su generación se rige por options.JsonSchemaCreateOptions

Se aplica a

Create(Delegate, String, String, JsonSerializerOptions)

Source:
AIFunctionFactory.cs

Crea una AIFunction instancia de para un método, especificado a través de un delegado.

public static Microsoft.Extensions.AI.AIFunction Create(Delegate method, string? name = default, string? description = default, System.Text.Json.JsonSerializerOptions? serializerOptions = default);
static member Create : Delegate * string * string * System.Text.Json.JsonSerializerOptions -> Microsoft.Extensions.AI.AIFunction
Public Shared Function Create (method As Delegate, Optional name As String = Nothing, Optional description As String = Nothing, Optional serializerOptions As JsonSerializerOptions = Nothing) As AIFunction

Parámetros

method
Delegate

Método que se va a representar a través del objeto creado AIFunction.

name
String

Nombre que se va a usar para .AIFunction Si nulles , el nombre se derivará de cualquiera DisplayNameAttribute de en method, si está disponible, o bien del nombre de method.

description
String

Descripción que se va a usar para .AIFunction Si nulles , una descripción se derivará de cualquiera DescriptionAttribute de en method, si está disponible.

serializerOptions
JsonSerializerOptions

utilizado JsonSerializerOptions para serializar parámetros de función y cualquier valor devuelto.

Devoluciones

Objeto creado AIFunction para invocar method.

Excepciones

method es null.

Un parámetro para method no es serializable.

Comentarios

Los parámetros que se van a method originar desde el AIFunctionArgumentsdiccionario de pares clave-valor y se representan en el esquema JSON de la función, tal como se AIFunctionexpone en el objeto devuelto de JsonSchema. Hay algunas excepciones a esto:

Todos los demás tipos de parámetros se enlazan desde el AIFunctionArguments diccionario pasado a InvokeAsync(AIFunctionArguments, CancellationToken) y se incluyen en el esquema JSON generado.

La serialización de parámetros del AIFunctionArguments diccionario permite pasar los valores directamente a la methodinvocación de si el objeto ya es de un tipo compatible. De lo contrario, si el argumento es , JsonElementJsonDocumento JsonNode, se deserializa en el tipo de parámetro, utilizando serializerOptions si se proporciona o .DefaultOptions Si el argumento es cualquier otra cosa, se recorre de ida y vuelta a través de JSON, serializando el objeto como JSON y, a continuación, deserializándolo al tipo esperado.

En general, los datos proporcionados a través de un AIFunctionArgumentsdiccionario se proporcionan desde un servicio de IA y se deben considerar no validados y que no son de confianza. Para proporcionar datos validados y de confianza a la invocación de , considere la posibilidad de methodtener method que apuntar a un método de instancia en una instancia configurada para contener el estado adecuado. También se puede usar un IServiceProvider parámetro para resolver servicios desde un contenedor de inserción de dependencias.

Los valores devueltos se serializan para JsonElement usar serializerOptions si se proporcionan, o bien mediante DefaultOptions. Sin embargo, los valores devueltos cuyo tipo declarado es AIContent, un tipo derivado de AIContento cualquier tipo asignable de IEnumerable<T> no se serializan; se devuelven as-is para facilitar el control especializado.

Un esquema JSON también se deriva del tipo de valor devuelto del método y se expone a través ReturnJsonSchemade . Para los métodos que devuelven Void, Tasko ValueTask, no se genera ningún esquema devuelto. Para los métodos que devuelven Task<TResult> o ValueTask<TResult>, el esquema se deriva del tipo de resultado desajustado.

Se aplica a

Create(MethodInfo, Object, String, String, JsonSerializerOptions)

Source:
AIFunctionFactory.cs

Crea una AIFunction instancia de para un método, especificado a través de una MethodInfo instancia y un objeto de destino opcional si el método es un método de instancia.

public static Microsoft.Extensions.AI.AIFunction Create(System.Reflection.MethodInfo method, object? target, string? name = default, string? description = default, System.Text.Json.JsonSerializerOptions? serializerOptions = default);
static member Create : System.Reflection.MethodInfo * obj * string * string * System.Text.Json.JsonSerializerOptions -> Microsoft.Extensions.AI.AIFunction
Public Shared Function Create (method As MethodInfo, target As Object, Optional name As String = Nothing, Optional description As String = Nothing, Optional serializerOptions As JsonSerializerOptions = Nothing) As AIFunction

Parámetros

method
MethodInfo

Método que se va a representar a través del objeto creado AIFunction.

target
Object

Objeto de destino para method si representa un método de instancia. Debe ser null si y solo si method es un método estático.

name
String

Nombre que se va a usar para .AIFunction Si nulles , el nombre se derivará de cualquiera DisplayNameAttribute de en method, si está disponible, o bien del nombre de method.

description
String

Descripción que se va a usar para .AIFunction Si nulles , una descripción se derivará de cualquiera DescriptionAttribute de en method, si está disponible.

serializerOptions
JsonSerializerOptions

utilizado JsonSerializerOptions para serializar parámetros de función y valor devuelto.

Devoluciones

Objeto creado AIFunction para invocar method.

Excepciones

method representa un método de instancia, pero target es null.

method contiene un parámetro sin un nombre de parámetro.

Un parámetro a method o su tipo de valor devuelto no es serializable.

Comentarios

Los parámetros que se van a method originar desde el AIFunctionArgumentsdiccionario de pares clave-valor y se representan en el esquema JSON de la función, tal como se AIFunctionexpone en el objeto devuelto de JsonSchema. Hay algunas excepciones a esto:

Todos los demás tipos de parámetros se enlazan desde el AIFunctionArguments diccionario pasado a InvokeAsync(AIFunctionArguments, CancellationToken) y se incluyen en el esquema JSON generado.

La serialización de parámetros del AIFunctionArguments diccionario permite pasar los valores directamente a la methodinvocación de si el objeto ya es de un tipo compatible. De lo contrario, si el argumento es , JsonElementJsonDocumento JsonNode, se deserializa en el tipo de parámetro, utilizando serializerOptions si se proporciona o .DefaultOptions Si el argumento es cualquier otra cosa, se recorre de ida y vuelta a través de JSON, serializando el objeto como JSON y, a continuación, deserializándolo al tipo esperado.

En general, los datos proporcionados a través de un AIFunctionArgumentsdiccionario se proporcionan desde un servicio de IA y se deben considerar no validados y que no son de confianza. Para proporcionar datos validados y de confianza a la invocación de , considere la posibilidad de methodtener method que apuntar a un método de instancia en una instancia configurada para contener el estado adecuado. También se puede usar un IServiceProvider parámetro para resolver servicios desde un contenedor de inserción de dependencias.

Los valores devueltos se serializan para JsonElement usar serializerOptions si se proporcionan, o bien mediante DefaultOptions. Sin embargo, los valores devueltos cuyo tipo declarado es AIContent, un tipo derivado de AIContento cualquier tipo asignable de IEnumerable<T> se devuelven sin serialización para habilitar el control especializado.

Un esquema JSON también se deriva del tipo de valor devuelto del método y se expone a través ReturnJsonSchemade . Para los métodos que devuelven Void, Tasko ValueTask, no se genera ningún esquema devuelto. Para los métodos que devuelven Task<TResult> o ValueTask<TResult>, el esquema se deriva del tipo de resultado desajustado.

Se aplica a