AIFunctionFactory.Create Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Cria uma AIFunction instância para um método, especificada através de um delegado.
Sobrecargas
| Name | Descrição |
|---|---|
| Create(Delegate, AIFunctionFactoryOptions) |
Cria uma AIFunction instância para um método, especificada através de um delegado. |
| Create(MethodInfo, Func<AIFunctionArguments,Object>, AIFunctionFactoryOptions) |
Cria uma AIFunction instância para um método, especificada via um MethodInfo para um método de instância e para Func<T,TResult> construir uma instância do objeto receptor cada vez que o AIFunction é invocado. |
| Create(MethodInfo, Object, AIFunctionFactoryOptions) |
Cria uma AIFunction instância para um método, especificada através de uma MethodInfo instância e um objeto alvo 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 através de um delegado. |
| Create(MethodInfo, Object, String, String, JsonSerializerOptions) |
Cria uma AIFunction instância para um método, especificada através de uma MethodInfo instância e um objeto alvo 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 através 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 através do criado AIFunction.
- options
- AIFunctionFactoryOptions
Metadados a usar para substituir os valores definidos inferidos a methodpartir de .
Devoluções
O criado AIFunction para invocar method.
Exceções
method é null.
Um parâmetro para method não é serializável.
Observações
Por defeito, quaisquer parâmetros para method são obtidos do AIFunctionArgumentsdicionário de pares chave/valor de , e são representados no esquema JSON da função, conforme exposto no 's AIFunctiondevolvidoJsonSchema. Existem algumas exceções a isto:
- CancellationToken Os parâmetros são automaticamente ligados ao CancellationToken passado na invocação através 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 ultrapassado.
- Por defeito, IServiceProvider os parâmetros são atribuídos à Services propriedade e não são incluídos no esquema JSON. Se o parâmetro for opcional, de modo que seja fornecido um valor predefinido, Services pode ser
null; caso contrário, Services deve ser não-null, caso contrário a invocação falhará com exceção devido à natureza exigida do parâmetro. O tratamento dos IServiceProvider parâmetros pode ser sobreposto via ConfigureParameterBinding. - Por defeito, AIFunctionArguments os parâmetros estão diretamente atribuídos à AIFunctionArguments instância passada InvokeAsync(AIFunctionArguments, CancellationToken) e não são incluídos no esquema JSON. Se a AIFunctionArguments instância passada para InvokeAsync(AIFunctionArguments, CancellationToken) for
null, a AIFunction implementação fabrica uma instância vazia, de modo que parâmetros do tipo AIFunctionArguments podem sempre ser satisfeitos, sejam opcionais ou não. O tratamento dos AIFunctionArguments parâmetros pode ser sobreposto via ConfigureParameterBinding.
options parâmetro; para cada parâmetro, o delegado pode escolher se o parâmetro deve ser incluído no esquema gerado e como o seu valor deve ser limitado, incluindo o tratamento da opcionalidade (por defeito, parâmetros exigidos que não estão incluídos no AIFunctionArguments dicionário resultarão numa exceção lançada). Informação adicional de contexto pouco tipicada pode ser passada InvokeAsync(AIFunctionArguments, CancellationToken) através do AIFunctionArgumentsdicionário 's Context ; a ligação por defeito ignora esta coleção, mas uma ligação personalizada fornecida via ConfigureParameterBinding pode escolher obter argumentos a partir destes dados.O marshaling padrão dos parâmetros do AIFunctionArguments dicionário permite que valores sejam passados diretamente para a methodinvocação de , se o objeto já for de um tipo compatível. Caso contrário, se o argumento for um JsonElement, , ou JsonDocument, é desserializado no tipo de parâmetro, utilizando JsonNode se fornecido, ou então usando SerializerOptionsDefaultOptions. Se o argumento for outra coisa, é feito round-trip através de JSON, serializando o objeto como JSON e depois desserializando-o para o tipo esperado.
Em geral, os dados fornecidos através de um AIFunctionArgumentsdicionário de 's são fornecidos por um serviço de IA e devem ser considerados não validados e não confiáveis. Para fornecer dados validados e confiáveis à invocação de method, considere ter method apontado para um método de instância numa instância configurado para manter o estado apropriado. Um IServiceProvider parâmetro também pode ser usado para resolver serviços a partir de um contentor de injeção de dependências.
Por defeito, os valores de retorno são serializados usando JsonElementoptions's SerializerOptions se forem fornecidos, ou então usando DefaultOptions. No entanto, valores de retorno cujo tipo declarado é AIContent, um tipo derivado de AIContent, ou qualquer tipo atribuível de IEnumerable<T> (por exemplo, AIContent[]), List<AIContent>são com maiúsculas especiais e não são serializadas: a função criada devolve a(s) instância(s) original(es) diretamente para permitir que os chamadores (como um IChatClient) realizem testes de tipo e implementem tratamento especializado. Se MarshalResult for fornecido, esse delegado governa o comportamento em vez disso.
Para além do esquema de parâmetros, um esquema JSON também é derivado do tipo de retorno do método e exposto através do .AIFunctionReturnJsonSchema Para métodos que retornam Void, , ou Task, não é produzido nenhum esquema de retorno (a propriedade é ValueTasknull). Para métodos que retornam Task<TResult> ou ValueTask<TResult>, o esquema é derivado do tipo de resultado não embrulhado. A geração de esquemas de retorno pode ser excluída via ExcludeResultSchema, e a 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 via um MethodInfo para um método de instância e para Func<T,TResult> construir uma instância do objeto receptor cada vez que o AIFunction é invocado.
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 da instância deve ser representado através do .AIFunction
- createInstanceFunc
- Func<AIFunctionArguments,Object>
O callback é usado em cada invocação de função para criar uma instância do tipo em que o método method de instância será invocado. Se a instância devolvida for IAsyncDisposable ou IDisposable, será eliminada após method completar a sua invocação.
- options
- AIFunctionFactoryOptions
Metadados a usar para substituir os valores definidos inferidos a methodpartir de .
Devoluções
O criado AIFunction para invocar method.
Exceções
createInstanceFunc é null.
method contém um parâmetro sem nome de parâmetro.
Um parâmetro para method ou o seu tipo de retorno não é serializável.
Observações
Os valores de retorno são serializados para JsonElement usar options's SerializerOptions. Argumentos que ainda não são do tipo esperado são orientados para o tipo esperado via JSON e usando options's SerializerOptions. Se o argumento for um JsonElement, JsonDocument, ou JsonNode, é desserializado diretamente. Se o argumento for outra coisa desconhecida, é feito round-trip através de JSON, serializando o objeto como JSON e depois desserializando-o para o tipo esperado.
Por defeito, quaisquer parâmetros para method são obtidos do AIFunctionArgumentsdicionário de pares chave/valor de , e são representados no esquema JSON da função, conforme exposto no 's AIFunctiondevolvidoJsonSchema. Existem algumas exceções a isto:
- CancellationToken Os parâmetros são automaticamente ligados ao CancellationToken passado na invocação através 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 ultrapassado.
- Por defeito, IServiceProvider os parâmetros são atribuídos à Services propriedade e não são incluídos no esquema JSON. Se o parâmetro for opcional, de modo que seja fornecido um valor predefinido, Services pode ser
null; caso contrário, Services deve ser não-null, caso contrário a invocação falhará com exceção devido à natureza exigida do parâmetro. O tratamento dos IServiceProvider parâmetros pode ser sobreposto via ConfigureParameterBinding. - Por defeito, AIFunctionArguments os parâmetros estão diretamente atribuídos à AIFunctionArguments instância passada InvokeAsync(AIFunctionArguments, CancellationToken) e não são incluídos no esquema JSON. Se a AIFunctionArguments instância passada para InvokeAsync(AIFunctionArguments, CancellationToken) for
null, a AIFunction implementação fabrica uma instância vazia, de modo que parâmetros do tipo AIFunctionArguments podem sempre ser satisfeitos, sejam opcionais ou não. O tratamento dos AIFunctionArguments parâmetros pode ser sobreposto via ConfigureParameterBinding.
options parâmetro; para cada parâmetro, o delegado pode escolher se o parâmetro deve ser incluído no esquema gerado e como o seu valor deve ser limitado, incluindo o tratamento da opcionalidade (por defeito, parâmetros exigidos que não estão incluídos no AIFunctionArguments dicionário resultarão numa exceção lançada). Informação adicional de contexto pouco tipicada pode ser passada InvokeAsync(AIFunctionArguments, CancellationToken) através do AIFunctionArgumentsdicionário 's Context ; a ligação por defeito ignora esta coleção, mas uma ligação personalizada fornecida via ConfigureParameterBinding pode escolher obter argumentos a partir destes dados.O marshaling padrão dos parâmetros do AIFunctionArguments dicionário permite que valores sejam passados diretamente para a methodinvocação de , se o objeto já for de um tipo compatível. Caso contrário, se o argumento for um JsonElement, , ou JsonDocument, é desserializado no tipo de parâmetro, utilizando JsonNode se fornecido, ou então usando SerializerOptionsDefaultOptions. Se o argumento for outra coisa, é feito round-trip através de JSON, serializando o objeto como JSON e depois desserializando-o para o tipo esperado.
Em geral, os dados fornecidos através de um AIFunctionArgumentsdicionário de 's são fornecidos por um serviço de IA e devem ser considerados não validados e não confiáveis. Para fornecer dados validados e de confiança à invocação de method, a instância construída para cada invocação pode conter esses dados, de modo que fiquem então disponíveis como method dados de instância. Um IServiceProvider parâmetro também pode ser usado para resolver serviços a partir de um contentor de injeção de dependências.
Por defeito, os valores de retorno são serializados usando JsonElementoptions's SerializerOptions se forem fornecidos, ou então usando DefaultOptions. No entanto, valores de retorno cujo tipo declarado é AIContent, um tipo derivado de AIContent, ou qualquer tipo atribuível de IEnumerable<T> são devolvidos diretamente sem serialização. O tratamento dos valores de retorno pode ser sobreposto via MarshalResult.
Para além do esquema de parâmetros, um esquema JSON também é derivado do tipo de retorno do método e exposto através do .AIFunctionReturnJsonSchema Para métodos que retornam Void, , ou Task, não é produzido nenhum esquema de retorno (a propriedade é ValueTasknull). Para métodos que retornam Task<TResult> ou ValueTask<TResult>, o esquema é derivado do tipo de resultado não embrulhado. A geração de esquemas de retorno pode ser excluída via ExcludeResultSchema, e a 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, especificada através de uma MethodInfo instância e um objeto alvo 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 através do criado AIFunction.
- target
- Object
O objeto alvo para o method if representa um método de instância.
Isto deve ser null se, e somente se, method for um método estático.
- options
- AIFunctionFactoryOptions
Metadados a usar para substituir os valores definidos inferidos a methodpartir de .
Devoluções
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 nome de parâmetro.
Um parâmetro para method ou o seu tipo de retorno não é serializável.
Observações
Por defeito, quaisquer parâmetros para method são obtidos do AIFunctionArgumentsdicionário de pares chave/valor de , e são representados no esquema JSON da função, conforme exposto no 's AIFunctiondevolvidoJsonSchema. Existem algumas exceções a isto:
- CancellationToken Os parâmetros são automaticamente ligados ao CancellationToken passado na invocação através 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 ultrapassado.
- Por defeito, IServiceProvider os parâmetros são atribuídos à Services propriedade e não são incluídos no esquema JSON. Se o parâmetro for opcional, de modo que seja fornecido um valor predefinido, Services pode ser
null; caso contrário, Services deve ser não-null, caso contrário a invocação falhará com exceção devido à natureza exigida do parâmetro. O tratamento dos IServiceProvider parâmetros pode ser sobreposto via ConfigureParameterBinding. - Por defeito, AIFunctionArguments os parâmetros estão diretamente atribuídos à AIFunctionArguments instância passada InvokeAsync(AIFunctionArguments, CancellationToken) e não são incluídos no esquema JSON. Se a AIFunctionArguments instância passada para InvokeAsync(AIFunctionArguments, CancellationToken) for
null, a AIFunction implementação fabrica uma instância vazia, de modo que parâmetros do tipo AIFunctionArguments podem sempre ser satisfeitos, sejam opcionais ou não. O tratamento dos AIFunctionArguments parâmetros pode ser sobreposto via ConfigureParameterBinding.
options parâmetro; para cada parâmetro, o delegado pode escolher se o parâmetro deve ser incluído no esquema gerado e como o seu valor deve ser limitado, incluindo o tratamento da opcionalidade (por defeito, parâmetros exigidos que não estão incluídos no AIFunctionArguments dicionário resultarão numa exceção lançada). Informação adicional de contexto pouco tipada pode ser passada InvokeAsync(AIFunctionArguments, CancellationToken) através do AIFunctionArgumentsdicionário 's Context ; a ligação por defeito ignora esta coleção, mas uma ligação personalizada fornecida via ConfigureParameterBinding pode escolher obter argumentos a partir destes dados.O marshaling padrão dos parâmetros do AIFunctionArguments dicionário permite que valores sejam passados diretamente para a methodinvocação de , se o objeto já for de um tipo compatível. Caso contrário, se o argumento for um JsonElement, , ou JsonDocument, é desserializado no tipo de parâmetro, utilizando JsonNode se fornecido, ou então usando SerializerOptionsDefaultOptions. Se o argumento for outra coisa, é feito round-trip através de JSON, serializando o objeto como JSON e depois desserializando-o para o tipo esperado.
Em geral, os dados fornecidos através de um AIFunctionArgumentsdicionário de 's são fornecidos por um serviço de IA e devem ser considerados não validados e não confiáveis. Para fornecer dados validados e confiáveis à invocação de method, considere ter method apontado para um método de instância numa instância configurado para manter o estado apropriado. Um IServiceProvider parâmetro também pode ser usado para resolver serviços a partir de um contentor de injeção de dependências.
Por defeito, os valores de retorno são serializados usando JsonElementoptions's SerializerOptions se forem fornecidos, ou então usando DefaultOptions. No entanto, valores de retorno cujo tipo declarado é AIContent, um tipo derivado de AIContent, ou qualquer tipo atribuível de IEnumerable<T> não são serializados e são devolvidos diretamente. O tratamento dos valores de retorno pode ser sobreposto via MarshalResult.
Para além do esquema de parâmetros, um esquema JSON também é derivado do tipo de retorno do método e exposto através do .AIFunctionReturnJsonSchema Para métodos que retornam Void, , ou Task, não é produzido nenhum esquema de retorno (a propriedade é ValueTasknull). Para métodos que retornam Task<TResult> ou ValueTask<TResult>, o esquema é derivado do tipo de resultado não embrulhado. A geração de esquemas de retorno pode ser excluída via ExcludeResultSchema, e a 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 através 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 através do criado AIFunction.
- name
- String
O nome a usar para o AIFunction. Se null, o nome será derivado de qualquer AIFunctionNameAttribute em method, então de qualquer DisplayNameAttribute em method, se disponível, ou então do nome de method.
- description
- String
A descrição a usar para o AIFunction. Se null, uma descrição será derivada de qualquer DescriptionAttribute em method, se disponível.
- serializerOptions
- JsonSerializerOptions
É JsonSerializerOptions usado para marshalar parâmetros de função e qualquer valor de retorno.
Devoluções
O criado AIFunction para invocar method.
Exceções
method é null.
Um parâmetro para method não é serializável.
Observações
Quaisquer parâmetros para method são obtidos do AIFunctionArgumentsdicionário de pares chave/valor de , e são representados no esquema JSON da função, conforme exposto nos 's AIFunctiondevolvidosJsonSchema. Existem algumas exceções a isto:
- CancellationToken Os parâmetros são automaticamente ligados ao CancellationToken passado na invocação através InvokeAsync(AIFunctionArguments, CancellationToken)do parâmetro 's CancellationToken . O parâmetro não está incluído no esquema JSON gerado.
- Por defeito, IServiceProvider os parâmetros são atribuídos à Services propriedade e não são incluídos no esquema JSON. Se o parâmetro for opcional, de modo que seja fornecido um valor predefinido, Services pode ser
null; caso contrário, Services deve ser não-null, caso contrário a invocação falhará com exceção devido à natureza exigida do parâmetro. - Por defeito, AIFunctionArguments os parâmetros estão diretamente atribuídos à AIFunctionArguments instância passada InvokeAsync(AIFunctionArguments, CancellationToken) e não são incluídos no esquema JSON. Se a AIFunctionArguments instância passada para InvokeAsync(AIFunctionArguments, CancellationToken) for
null, a AIFunction implementação fabrica uma instância vazia, de modo que parâmetros do tipo AIFunctionArguments podem sempre ser satisfeitos, sejam opcionais ou não.
O agrupamento dos parâmetros a partir do AIFunctionArguments dicionário permite que valores sejam passados diretamente para a methodinvocação de , se o objeto já for de um tipo compatível. Caso contrário, se o argumento for um JsonElement, , ou JsonDocument, é desserializado no tipo de parâmetro, utilizando JsonNode se for fornecido, ou então serializerOptionsDefaultOptions. Se o argumento for outra coisa, é feito round-trip através de JSON, serializando o objeto como JSON e depois desserializando-o para o tipo esperado.
Em geral, os dados fornecidos através de um AIFunctionArgumentsdicionário de 's são fornecidos por um serviço de IA e devem ser considerados não validados e não confiáveis. Para fornecer dados validados e confiáveis à invocação de method, considere ter method apontado para um método de instância numa instância configurado para manter o estado apropriado. Um IServiceProvider parâmetro também pode ser usado para resolver serviços a partir de um contentor de injeção de dependências.
Os valores de retorno são serializados para JsonElement usar serializerOptions se fornecido, ou então usar DefaultOptions. No entanto, valores de retorno cujo tipo declarado é AIContent, um tipo derivado de AIContent, ou qualquer tipo atribuível de IEnumerable<T> não são serializados; são devolvidos as-is para facilitar um tratamento especializado.
Um esquema JSON também é derivado do tipo de retorno do método e exposto via ReturnJsonSchema. Para métodos que retornam Void, Task, ou ValueTask, não é produzido nenhum esquema de retorno. Para métodos que retornam Task<TResult> ou ValueTask<TResult>, o esquema é derivado do tipo de resultado não embrulhado.
Aplica-se a
Create(MethodInfo, Object, String, String, JsonSerializerOptions)
- Origem:
- AIFunctionFactory.cs
Cria uma AIFunction instância para um método, especificada através de uma MethodInfo instância e um objeto alvo 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 através do criado AIFunction.
- target
- Object
O objeto alvo para o method if representa um método de instância.
Isto deve ser null se, e somente se, method for um método estático.
- name
- String
O nome a usar para o AIFunction. Se null, o nome será derivado de qualquer AIFunctionNameAttribute em method, então de qualquer DisplayNameAttribute em method, se disponível, ou então do nome de method.
- description
- String
A descrição a usar para o AIFunction. Se null, uma descrição será derivada de qualquer DescriptionAttribute em method, se disponível.
- serializerOptions
- JsonSerializerOptions
Eles JsonSerializerOptions são usados para marshalar parâmetros da função e devolver o valor.
Devoluções
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 nome de parâmetro.
Um parâmetro para method ou o seu tipo de retorno não é serializável.
Observações
Quaisquer parâmetros para method são obtidos do AIFunctionArgumentsdicionário de pares chave/valor de , e são representados no esquema JSON da função, conforme exposto nos 's AIFunctiondevolvidosJsonSchema. Existem algumas exceções a isto:
- CancellationToken Os parâmetros são automaticamente ligados ao CancellationToken passado na invocação através InvokeAsync(AIFunctionArguments, CancellationToken)do parâmetro 's CancellationToken . O parâmetro não está incluído no esquema JSON gerado.
- Por defeito, IServiceProvider os parâmetros são atribuídos à Services propriedade e não são incluídos no esquema JSON. Se o parâmetro for opcional, de modo que seja fornecido um valor predefinido, Services pode ser
null; caso contrário, Services deve ser não-null, caso contrário a invocação falhará com exceção devido à natureza exigida do parâmetro. - Por defeito, AIFunctionArguments os parâmetros estão diretamente atribuídos à AIFunctionArguments instância passada InvokeAsync(AIFunctionArguments, CancellationToken) e não são incluídos no esquema JSON. Se a AIFunctionArguments instância passada para InvokeAsync(AIFunctionArguments, CancellationToken) for
null, a AIFunction implementação fabrica uma instância vazia, de modo que parâmetros do tipo AIFunctionArguments podem sempre ser satisfeitos, sejam opcionais ou não.
O agrupamento dos parâmetros a partir do AIFunctionArguments dicionário permite que valores sejam passados diretamente para a methodinvocação de , se o objeto já for de um tipo compatível. Caso contrário, se o argumento for um JsonElement, , ou JsonDocument, é desserializado no tipo de parâmetro, utilizando JsonNode se for fornecido, ou então serializerOptionsDefaultOptions. Se o argumento for outra coisa, é feito round-trip através de JSON, serializando o objeto como JSON e depois desserializando-o para o tipo esperado.
Em geral, os dados fornecidos através de um AIFunctionArgumentsdicionário de 's são fornecidos por um serviço de IA e devem ser considerados não validados e não confiáveis. Para fornecer dados validados e confiáveis à invocação de method, considere ter method apontado para um método de instância numa instância configurado para manter o estado apropriado. Um IServiceProvider parâmetro também pode ser usado para resolver serviços a partir de um contentor de injeção de dependências.
Os valores de retorno são serializados para JsonElement usar serializerOptions se fornecido, ou então usar DefaultOptions. No entanto, valores de retorno cujo tipo declarado é AIContent, um tipo derivado de AIContent, ou qualquer tipo atribuível de IEnumerable<T> são devolvidos sem serialização para permitir um tratamento especializado.
Um esquema JSON também é derivado do tipo de retorno do método e exposto via ReturnJsonSchema. Para métodos que retornam Void, Task, ou ValueTask, não é produzido nenhum esquema de retorno. Para métodos que retornam Task<TResult> ou ValueTask<TResult>, o esquema é derivado do tipo de resultado não embrulhado.