Partilhar via


AIFunctionFactory.Create Método

Definição

Sobrecargas

Nome Description
Create(Delegate, AIFunctionFactoryOptions)

Cria uma AIFunction instância para um método, especificada por meio de um delegado.

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

Cria uma AIFunction instância para um método, especificada por meio de um MethodInfo método de instância e uma Func<T,TResult> para construir uma instância do objeto receptor sempre que é AIFunction invocada.

Create(MethodInfo, Object, AIFunctionFactoryOptions)

Cria uma AIFunction instância para um método, especificado por meio de uma MethodInfo instância e um objeto de destino opcional se o método for um método de instância.

Create(Delegate, String, String, JsonSerializerOptions)

Cria uma AIFunction instância para um método, especificada por meio de um delegado.

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

Cria uma AIFunction instância para um método, especificado por meio de uma MethodInfo instância e um objeto de destino opcional se o método for um método de instância.

Create(Delegate, AIFunctionFactoryOptions)

Origem:
AIFunctionFactory.cs

Cria uma AIFunction instância para um método, especificada por meio de um 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

O método a ser representado por meio do criado AIFunction.

options
AIFunctionFactoryOptions

Metadados a serem usados para substituir os padrões inferidos de method.

Retornos

O criado AIFunction para invocar method.

Exceções

method é null.

Um parâmetro para o method qual não é serializável.

Comentários

Por padrão, todos os parâmetros a method serem originados do dicionário 's de pares chave/valor e são representados no esquema JSON para a função, conforme exposto nos 's retornadosJsonSchemaAIFunction.AIFunctionArguments Há algumas exceções para isso:

Todos os outros tipos de parâmetro são, por padrão, associados do AIFunctionArguments dicionário passado InvokeAsync(AIFunctionArguments, CancellationToken) e incluídos no esquema JSON gerado. Isso pode ser substituído pelo fornecido por ConfigureParameterBinding meio do options parâmetro; para cada parâmetro, o delegado está habilitado para escolher se o parâmetro deve ser incluído no esquema gerado e como seu valor deve ser associado, incluindo o tratamento da opcionalidade (por padrão, os parâmetros necessários que não estão incluídos no AIFunctionArguments dicionário resultarão na geração de uma exceção). Informações de contexto adicionais de tipo flexível podem ser passadas InvokeAsync(AIFunctionArguments, CancellationToken) por meio do dicionário 'sContext; a associação padrão ignora essa coleção, mas uma associação personalizada fornecida por meio ConfigureParameterBinding pode optar por argumentos de origem AIFunctionArgumentsdesses dados.

O marshaling padrão de parâmetros do AIFunctionArguments dicionário permite que os valores sejam passados para a methodinvocação de 's diretamente se o objeto já estiver de um tipo compatível. Caso contrário, se o argumento for um , ou JsonNode, ele será desserializado no tipo de parâmetro, utilizando SerializerOptions se fornecido ou usando DefaultOptions. JsonDocumentJsonElement Se o argumento for qualquer outra coisa, ele será arredondado por JSON, serializando o objeto como JSON e desserializando-o para o tipo esperado.

Em geral, os dados fornecidos por meio de um AIFunctionArgumentsdicionário 's são fornecidos de um serviço de IA e devem ser considerados não avaliados e não confiáveis. Para fornecer dados validados e confiáveis para a invocação, methodconsidere ter method um método de instância em uma instância configurada para manter o estado apropriado. Um IServiceProvider parâmetro também pode ser usado para resolver serviços de um contêiner de injeção de dependência.

Por padrão, os valores retornados são serializados para JsonElement usar 's SerializerOptions se fornecidos ou então usando DefaultOptionsoptions. No entanto, os valores retornados cujo tipo declarado é AIContent, um tipo derivado ou AIContentqualquer tipo atribuível de IEnumerable<T> (por exemplo AIContent[], , List<AIContent>) são casos especiais e não são serializados: a função criada retorna as instâncias originais diretamente para permitir que os chamadores (como um IChatClient) executem testes de tipo e implementem tratamento especializado. Se MarshalResult for fornecido, esse delegado controlará o comportamento.

Além do esquema de parâmetro, um esquema JSON também é derivado do tipo de retorno do método e exposto por meio dos 's ' s retornados AIFunctionReturnJsonSchema. Para métodos que retornam Void, Taskou ValueTask, nenhum esquema de retorno é produzido (a propriedade é null). Para métodos que retornam Task<TResult> ou ValueTask<TResult>, o esquema é derivado do tipo de resultado desembrulhado. A geração de esquema de retorno pode ser excluída por meio ExcludeResultSchemade , e sua geração é governada por options's JsonSchemaCreateOptions.

Aplica-se a

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

Origem:
AIFunctionFactory.cs

Cria uma AIFunction instância para um método, especificada por meio de um MethodInfo método de instância e uma Func<T,TResult> para construir uma instância do objeto receptor sempre que é AIFunction invocada.

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

O método de instância a ser representado por meio do .AIFunction

createInstanceFunc
Func<AIFunctionArguments,Object>

Retorno de chamada usado em cada invocação de função para criar uma instância do tipo no qual o método method de instância será invocado. Se a instância retornada for IAsyncDisposable ou IDisposable, ela será descartada após method a conclusão da invocação.

options
AIFunctionFactoryOptions

Metadados a serem usados para substituir os padrões inferidos de method.

Retornos

O criado AIFunction para invocar method.

Exceções

createInstanceFunc é null.

method contém um parâmetro sem um nome de parâmetro.

Um parâmetro para method ou seu tipo de retorno não é serializável.

Comentários

Os valores retornados são serializados para JsonElement usar options's SerializerOptions. Os argumentos que ainda não são do tipo esperado são empacotados para o tipo esperado via JSON e usando options's SerializerOptions. Se o argumento for um JsonElement, JsonDocumentou JsonNode, ele será desserializado diretamente. Se o argumento for algo desconhecido, ele será arredondado por JSON, serializando o objeto como JSON e desserializando-o para o tipo esperado.

Por padrão, todos os parâmetros a method serem originados do dicionário 's de pares chave/valor e são representados no esquema JSON para a função, conforme exposto nos 's retornadosJsonSchemaAIFunction.AIFunctionArguments Há algumas exceções para isso:

Todos os outros tipos de parâmetro são, por padrão, associados do AIFunctionArguments dicionário passado InvokeAsync(AIFunctionArguments, CancellationToken) e incluídos no esquema JSON gerado. Isso pode ser substituído pelo fornecido por ConfigureParameterBinding meio do options parâmetro; para cada parâmetro, o delegado está habilitado para escolher se o parâmetro deve ser incluído no esquema gerado e como seu valor deve ser associado, incluindo o tratamento da opcionalidade (por padrão, os parâmetros necessários que não estão incluídos no AIFunctionArguments dicionário resultarão na geração de uma exceção). Informações de contexto adicionais de tipo flexível podem ser passadas InvokeAsync(AIFunctionArguments, CancellationToken) por meio do dicionário 'sContext; a associação padrão ignora essa coleção, mas uma associação personalizada fornecida por meio ConfigureParameterBinding pode optar por argumentos de origem AIFunctionArgumentsdesses dados.

O marshaling padrão de parâmetros do AIFunctionArguments dicionário permite que os valores sejam passados para a methodinvocação de 's diretamente se o objeto já estiver de um tipo compatível. Caso contrário, se o argumento for um , ou JsonNode, ele será desserializado no tipo de parâmetro, utilizando SerializerOptions se fornecido ou usando DefaultOptions. JsonDocumentJsonElement Se o argumento for qualquer outra coisa, ele será arredondado por JSON, serializando o objeto como JSON e desserializando-o para o tipo esperado.

Em geral, os dados fornecidos por meio de um AIFunctionArgumentsdicionário 's são fornecidos de um serviço de IA e devem ser considerados não avaliados e não confiáveis. Para fornecer dados validados e confiáveis para a invocação de method, a instância construída para cada invocação pode conter esses dados nele, de modo que ele esteja disponível como method dados de instância. Um IServiceProvider parâmetro também pode ser usado para resolver serviços de um contêiner de injeção de dependência.

Por padrão, os valores retornados são serializados para JsonElement usar 's SerializerOptions se fornecidos ou então usando DefaultOptionsoptions. No entanto, os valores retornados cujo tipo declarado é AIContent, um tipo AIContentderivado ou qualquer tipo atribuível IEnumerable<T> são retornados diretamente sem serialização. A manipulação de valores retornados pode ser substituída por .MarshalResult

Além do esquema de parâmetro, um esquema JSON também é derivado do tipo de retorno do método e exposto por meio dos 's ' s retornados AIFunctionReturnJsonSchema. Para métodos que retornam Void, Taskou ValueTask, nenhum esquema de retorno é produzido (a propriedade é null). Para métodos que retornam Task<TResult> ou ValueTask<TResult>, o esquema é derivado do tipo de resultado desembrulhado. A geração de esquema de retorno pode ser excluída por meio ExcludeResultSchemade , e sua geração é governada por options's JsonSchemaCreateOptions.

Aplica-se a

Create(MethodInfo, Object, AIFunctionFactoryOptions)

Origem:
AIFunctionFactory.cs

Cria uma AIFunction instância para um método, especificado por meio de uma MethodInfo instância e um objeto de destino opcional se o método for um método de instância.

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

O método a ser representado por meio do criado AIFunction.

target
Object

O objeto de destino para o method se ele representa um método de instância. Isso deve ser null se e somente se method for um método estático.

options
AIFunctionFactoryOptions

Metadados a serem usados para substituir os padrões inferidos de method.

Retornos

O criado AIFunction para invocar method.

Exceções

method representa um método de instância, mas target é nulo.

method contém um parâmetro sem um nome de parâmetro.

Um parâmetro para method ou seu tipo de retorno não é serializável.

Comentários

Por padrão, todos os parâmetros a method serem originados do dicionário 's de pares chave/valor e são representados no esquema JSON para a função, conforme exposto nos 's retornadosJsonSchemaAIFunction.AIFunctionArguments Há algumas exceções para isso:

Todos os outros tipos de parâmetro são, por padrão, associados do AIFunctionArguments dicionário passado InvokeAsync(AIFunctionArguments, CancellationToken) e incluídos no esquema JSON gerado. Isso pode ser substituído pelo fornecido por ConfigureParameterBinding meio do options parâmetro; para cada parâmetro, o delegado está habilitado para escolher se o parâmetro deve ser incluído no esquema gerado e como seu valor deve ser associado, incluindo o tratamento da opcionalidade (por padrão, os parâmetros necessários que não estão incluídos no AIFunctionArguments dicionário resultarão na geração de uma exceção). Informações de contexto adicionais com tipo flexível podem ser passadas por InvokeAsync(AIFunctionArguments, CancellationToken) meio do dicionário 'sContext; a associação padrão ignora essa coleção, mas uma associação personalizada fornecida por meio ConfigureParameterBinding pode optar por argumentos de origem AIFunctionArgumentsdesses dados.

O marshaling padrão de parâmetros do AIFunctionArguments dicionário permite que os valores sejam passados para a methodinvocação de 's diretamente se o objeto já estiver de um tipo compatível. Caso contrário, se o argumento for um , ou JsonNode, ele será desserializado no tipo de parâmetro, utilizando SerializerOptions se fornecido ou usando DefaultOptions. JsonDocumentJsonElement Se o argumento for qualquer outra coisa, ele será arredondado por JSON, serializando o objeto como JSON e desserializando-o para o tipo esperado.

Em geral, os dados fornecidos por meio de um AIFunctionArgumentsdicionário 's são fornecidos de um serviço de IA e devem ser considerados não avaliados e não confiáveis. Para fornecer dados validados e confiáveis para a invocação, methodconsidere ter method um método de instância em uma instância configurada para manter o estado apropriado. Um IServiceProvider parâmetro também pode ser usado para resolver serviços de um contêiner de injeção de dependência.

Por padrão, os valores retornados são serializados para JsonElement usar 's SerializerOptions se fornecidos ou então usando DefaultOptionsoptions. No entanto, os valores retornados cujo tipo declarado é AIContent, um tipo derivado ou AIContentqualquer tipo atribuível IEnumerable<T> não são serializados e, em vez disso, são retornados diretamente. A manipulação de valores retornados pode ser substituída por .MarshalResult

Além do esquema de parâmetro, um esquema JSON também é derivado do tipo de retorno do método e exposto por meio dos 's ' s retornados AIFunctionReturnJsonSchema. Para métodos que retornam Void, Taskou ValueTask, nenhum esquema de retorno é produzido (a propriedade é null). Para métodos que retornam Task<TResult> ou ValueTask<TResult>, o esquema é derivado do tipo de resultado desembrulhado. A geração de esquema de retorno pode ser excluída por meio ExcludeResultSchemade , e sua geração é governada por options's JsonSchemaCreateOptions.

Aplica-se a

Create(Delegate, String, String, JsonSerializerOptions)

Origem:
AIFunctionFactory.cs

Cria uma AIFunction instância para um método, especificada por meio de um 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

O método a ser representado por meio do criado AIFunction.

name
String

O nome a ser usado para o AIFunction. Se null, o nome será derivado de qualquer DisplayNameAttribute um, methodse disponível, ou então do nome de method.

description
String

A descrição a ser usada para o AIFunction. Se null, uma descrição será derivada de qualquer DescriptionAttribute em method, se disponível.

serializerOptions
JsonSerializerOptions

O JsonSerializerOptions usado para marshalar parâmetros de função e qualquer valor retornado.

Retornos

O criado AIFunction para invocar method.

Exceções

method é null.

Um parâmetro para o method qual não é serializável.

Comentários

Todos os parâmetros a method serem originados do dicionário 's de pares chave/valor e são representados no esquema JSON para a função, conforme exposto nos 's retornadosJsonSchemaAIFunction.AIFunctionArguments Há algumas exceções para isso:

Todos os outros tipos de parâmetro são associados do AIFunctionArguments dicionário passado InvokeAsync(AIFunctionArguments, CancellationToken) e incluídos no esquema JSON gerado.

O marshaling de parâmetros do AIFunctionArguments dicionário permite que os valores sejam passados para a methodinvocação de 's diretamente se o objeto já estiver de um tipo compatível. Caso contrário, se o argumento for um , ou JsonNode, ele será desserializado no tipo de parâmetro, utilizando serializerOptions se fornecido ou então DefaultOptions. JsonDocumentJsonElement Se o argumento for qualquer outra coisa, ele será arredondado por JSON, serializando o objeto como JSON e desserializando-o para o tipo esperado.

Em geral, os dados fornecidos por meio de um AIFunctionArgumentsdicionário 's são fornecidos de um serviço de IA e devem ser considerados não avaliados e não confiáveis. Para fornecer dados validados e confiáveis para a invocação, methodconsidere ter method um método de instância em uma instância configurada para manter o estado apropriado. Um IServiceProvider parâmetro também pode ser usado para resolver serviços de um contêiner de injeção de dependência.

Os valores retornados são serializados para JsonElement uso serializerOptions , se fornecidos, ou então usando DefaultOptions. No entanto, os valores retornados cujo tipo declarado é AIContent, um tipo AIContentderivado ou qualquer tipo atribuível IEnumerable<T> não são serializados; eles são retornados as-is para facilitar o tratamento especializado.

Um esquema JSON também é derivado do tipo de retorno do método e exposto por meio de ReturnJsonSchema. Para métodos que retornam Void, Taskou ValueTask, nenhum esquema de retorno é produzido. Para métodos que retornam Task<TResult> ou ValueTask<TResult>, o esquema é derivado do tipo de resultado desembrulhado.

Aplica-se a

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

Origem:
AIFunctionFactory.cs

Cria uma AIFunction instância para um método, especificado por meio de uma MethodInfo instância e um objeto de destino opcional se o método for um método de instância.

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

O método a ser representado por meio do criado AIFunction.

target
Object

O objeto de destino para o method se ele representa um método de instância. Isso deve ser null se e somente se method for um método estático.

name
String

O nome a ser usado para o AIFunction. Se null, o nome será derivado de qualquer DisplayNameAttribute um, methodse disponível, ou então do nome de method.

description
String

A descrição a ser usada para o AIFunction. Se null, uma descrição será derivada de qualquer DescriptionAttribute em method, se disponível.

serializerOptions
JsonSerializerOptions

O JsonSerializerOptions usado para marshalar parâmetros de função e retornar valor.

Retornos

O criado AIFunction para invocar method.

Exceções

method representa um método de instância, mas target é nulo.

method contém um parâmetro sem um nome de parâmetro.

Um parâmetro para method ou seu tipo de retorno não é serializável.

Comentários

Todos os parâmetros a method serem originados do dicionário 's de pares chave/valor e são representados no esquema JSON para a função, conforme exposto nos 's retornadosJsonSchemaAIFunction.AIFunctionArguments Há algumas exceções para isso:

Todos os outros tipos de parâmetro são associados do AIFunctionArguments dicionário passado InvokeAsync(AIFunctionArguments, CancellationToken) e incluídos no esquema JSON gerado.

O marshaling de parâmetros do AIFunctionArguments dicionário permite que os valores sejam passados para a methodinvocação de 's diretamente se o objeto já estiver de um tipo compatível. Caso contrário, se o argumento for um , ou JsonNode, ele será desserializado no tipo de parâmetro, utilizando serializerOptions se fornecido ou então DefaultOptions. JsonDocumentJsonElement Se o argumento for qualquer outra coisa, ele será arredondado por JSON, serializando o objeto como JSON e desserializando-o para o tipo esperado.

Em geral, os dados fornecidos por meio de um AIFunctionArgumentsdicionário 's são fornecidos de um serviço de IA e devem ser considerados não avaliados e não confiáveis. Para fornecer dados validados e confiáveis para a invocação, methodconsidere ter method um método de instância em uma instância configurada para manter o estado apropriado. Um IServiceProvider parâmetro também pode ser usado para resolver serviços de um contêiner de injeção de dependência.

Os valores retornados são serializados para JsonElement uso serializerOptions , se fornecidos, ou então usando DefaultOptions. No entanto, os valores retornados cujo tipo declarado é AIContent, um tipo AIContentderivado ou qualquer tipo atribuível IEnumerable<T> são retornados sem serialização para habilitar o tratamento especializado.

Um esquema JSON também é derivado do tipo de retorno do método e exposto por meio de ReturnJsonSchema. Para métodos que retornam Void, Taskou ValueTask, nenhum esquema de retorno é produzido. Para métodos que retornam Task<TResult> ou ValueTask<TResult>, o esquema é derivado do tipo de resultado desembrulhado.

Aplica-se a