AIFunctionFactory.Create Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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:
- CancellationToken os parâmetros são automaticamente associados ao passado para CancellationToken a invocação por meio InvokeAsync(AIFunctionArguments, CancellationToken)do parâmetro 's CancellationToken . O parâmetro não está incluído no esquema JSON gerado. O comportamento dos CancellationToken parâmetros não pode ser substituído.
- Por padrão, IServiceProvider os parâmetros são associados da Services propriedade e não estão incluídos no esquema JSON. Se o parâmetro for opcional, de modo que um valor padrão seja fornecido, Services será permitido ser
null; caso contrário, Services deve ser diferentenullou a invocação falhará com uma exceção devido à natureza necessária do parâmetro. O tratamento de IServiceProvider parâmetros pode ser substituído por meio de ConfigureParameterBinding. - Por padrão, AIFunctionArguments os parâmetros são associados diretamente à AIFunctionArguments instância passada InvokeAsync(AIFunctionArguments, CancellationToken) e não são incluídos no esquema JSON. Se a AIFunctionArguments instância passada for InvokeAsync(AIFunctionArguments, CancellationToken)
null, a AIFunction implementação fabricará uma instância vazia, de modo que os parâmetros do tipo AIFunctionArguments sempre possam ser atendidos, seja opcional ou não. O tratamento de AIFunctionArguments parâmetros pode ser substituído por meio de ConfigureParameterBinding.
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:
- CancellationToken os parâmetros são automaticamente associados ao passado para CancellationToken a invocação por meio InvokeAsync(AIFunctionArguments, CancellationToken)do parâmetro 's CancellationToken . O parâmetro não está incluído no esquema JSON gerado. O comportamento dos CancellationToken parâmetros não pode ser substituído.
- Por padrão, IServiceProvider os parâmetros são associados da Services propriedade e não estão incluídos no esquema JSON. Se o parâmetro for opcional, de modo que um valor padrão seja fornecido, Services será permitido ser
null; caso contrário, Services deve ser diferentenullou a invocação falhará com uma exceção devido à natureza necessária do parâmetro. O tratamento de IServiceProvider parâmetros pode ser substituído por meio de ConfigureParameterBinding. - Por padrão, AIFunctionArguments os parâmetros são associados diretamente à AIFunctionArguments instância passada InvokeAsync(AIFunctionArguments, CancellationToken) e não são incluídos no esquema JSON. Se a AIFunctionArguments instância passada for InvokeAsync(AIFunctionArguments, CancellationToken)
null, a AIFunction implementação fabricará uma instância vazia, de modo que os parâmetros do tipo AIFunctionArguments sempre possam ser atendidos, seja opcional ou não. O tratamento de AIFunctionArguments parâmetros pode ser substituído por meio de ConfigureParameterBinding.
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:
- CancellationToken os parâmetros são automaticamente associados ao passado para CancellationToken a invocação por meio InvokeAsync(AIFunctionArguments, CancellationToken)do parâmetro 's CancellationToken . O parâmetro não está incluído no esquema JSON gerado. O comportamento dos CancellationToken parâmetros não pode ser substituído.
- Por padrão, IServiceProvider os parâmetros são associados da Services propriedade e não estão incluídos no esquema JSON. Se o parâmetro for opcional, de modo que um valor padrão seja fornecido, Services será permitido ser
null; caso contrário, Services deve ser diferentenullou a invocação falhará com uma exceção devido à natureza necessária do parâmetro. O tratamento de IServiceProvider parâmetros pode ser substituído por meio de ConfigureParameterBinding. - Por padrão, AIFunctionArguments os parâmetros são associados diretamente à AIFunctionArguments instância passada InvokeAsync(AIFunctionArguments, CancellationToken) e não são incluídos no esquema JSON. Se a AIFunctionArguments instância passada for InvokeAsync(AIFunctionArguments, CancellationToken)
null, a AIFunction implementação fabricará uma instância vazia, de modo que os parâmetros do tipo AIFunctionArguments sempre possam ser atendidos, seja opcional ou não. O tratamento de AIFunctionArguments parâmetros pode ser substituído por meio de ConfigureParameterBinding.
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:
- CancellationToken os parâmetros são automaticamente associados ao passado para CancellationToken a invocação por meio InvokeAsync(AIFunctionArguments, CancellationToken)do parâmetro 's CancellationToken . O parâmetro não está incluído no esquema JSON gerado.
- Por padrão, IServiceProvider os parâmetros são associados da Services propriedade e não estão incluídos no esquema JSON. Se o parâmetro for opcional, de modo que um valor padrão seja fornecido, Services será permitido ser
null; caso contrário, Services deve ser diferentenullou a invocação falhará com uma exceção devido à natureza necessária do parâmetro. - Por padrão, AIFunctionArguments os parâmetros são associados diretamente à AIFunctionArguments instância passada InvokeAsync(AIFunctionArguments, CancellationToken) e não são incluídos no esquema JSON. Se a AIFunctionArguments instância passada for InvokeAsync(AIFunctionArguments, CancellationToken)
null, a AIFunction implementação fabricará uma instância vazia, de modo que os parâmetros do tipo AIFunctionArguments sempre possam ser atendidos, seja opcional ou não.
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:
- CancellationToken os parâmetros são automaticamente associados ao passado para CancellationToken a invocação por meio InvokeAsync(AIFunctionArguments, CancellationToken)do parâmetro 's CancellationToken . O parâmetro não está incluído no esquema JSON gerado.
- Por padrão, IServiceProvider os parâmetros são associados da Services propriedade e não estão incluídos no esquema JSON. Se o parâmetro for opcional, de modo que um valor padrão seja fornecido, Services será permitido ser
null; caso contrário, Services deve ser diferentenullou a invocação falhará com uma exceção devido à natureza necessária do parâmetro. - Por padrão, AIFunctionArguments os parâmetros são associados diretamente à AIFunctionArguments instância passada InvokeAsync(AIFunctionArguments, CancellationToken) e não são incluídos no esquema JSON. Se a AIFunctionArguments instância passada for InvokeAsync(AIFunctionArguments, CancellationToken)
null, a AIFunction implementação fabricará uma instância vazia, de modo que os parâmetros do tipo AIFunctionArguments sempre possam ser atendidos, seja opcional ou não.
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.