AIFunctionFactory.Create Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Surcharges
| Nom | Description |
|---|---|
| Create(Delegate, AIFunctionFactoryOptions) |
Crée une AIFunction instance pour une méthode, spécifiée via un délégué. |
| Create(MethodInfo, Func<AIFunctionArguments,Object>, AIFunctionFactoryOptions) |
Crée une AIFunction instance pour une méthode, spécifiée par le biais d’une MethodInfo méthode d’instance et d’une Func<T,TResult> instance pour construire une instance de l’objet récepteur chaque fois que l’objet AIFunction est appelé. |
| Create(MethodInfo, Object, AIFunctionFactoryOptions) |
Crée une AIFunction instance pour une méthode, spécifiée via une MethodInfo instance et un objet cible facultatif si la méthode est une méthode d’instance. |
| Create(Delegate, String, String, JsonSerializerOptions) |
Crée une AIFunction instance pour une méthode, spécifiée via un délégué. |
| Create(MethodInfo, Object, String, String, JsonSerializerOptions) |
Crée une AIFunction instance pour une méthode, spécifiée via une MethodInfo instance et un objet cible facultatif si la méthode est une méthode d’instance. |
Create(Delegate, AIFunctionFactoryOptions)
- Source:
- AIFunctionFactory.cs
Crée une AIFunction instance pour une méthode, spécifiée via un délégué.
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
Paramètres
- method
- Delegate
Méthode à représenter via le fichier créé AIFunction.
- options
- AIFunctionFactoryOptions
Métadonnées à utiliser pour remplacer les valeurs par défaut déduites à partir de method.
Retours
AIFunction Créé pour appeler method.
Exceptions
method a la valeur null.
Paramètre à method ne pas sérialisable.
Remarques
Par défaut, tous les paramètres à method sourcer à partir du AIFunctionArgumentsdictionnaire des paires clé/valeur et sont représentés dans le schéma JSON de la fonction, tel qu’exposé dans le fichier retourné AIFunctionJsonSchema. Il existe quelques exceptions à ceci :
- CancellationToken les paramètres sont automatiquement liés à l’appel CancellationToken passé via InvokeAsync(AIFunctionArguments, CancellationToken)le paramètre 's CancellationToken . Le paramètre n’est pas inclus dans le schéma JSON généré. Le comportement des CancellationToken paramètres ne peut pas être substitué.
- Par défaut, IServiceProvider les paramètres sont liés à partir de la Services propriété et ne sont pas inclus dans le schéma JSON. Si le paramètre est facultatif, de sorte qu’une valeur par défaut est fournie, Services est autorisé à être
null; sinon, Services doit être nonnull- ou si l’appel échoue avec une exception en raison de la nature requise du paramètre. La gestion des IServiceProvider paramètres peut être substituée via ConfigureParameterBinding. - Par défaut, AIFunctionArguments les paramètres sont liés directement à l’instance AIFunctionArguments passée InvokeAsync(AIFunctionArguments, CancellationToken) et ne sont pas inclus dans le schéma JSON. Si l’instance AIFunctionArguments passée est
nullInvokeAsync(AIFunctionArguments, CancellationToken) , l’implémentation AIFunction fabrique une instance vide, de sorte que les paramètres de type AIFunctionArguments peuvent toujours être satisfaits, qu’ils soient facultatifs ou non. La gestion des AIFunctionArguments paramètres peut être substituée via ConfigureParameterBinding.
options paramètre ; pour chaque paramètre, le délégué est activé pour choisir si le paramètre doit être inclus dans le schéma généré et comment sa valeur doit être liée, y compris la gestion de la facultatifité (par défaut, les paramètres requis qui ne sont pas inclus dans le AIFunctionArguments dictionnaire entraînent une exception levée). Des informations de contexte supplémentaires faiblement typées peuvent être transmises InvokeAsync(AIFunctionArguments, CancellationToken) via le AIFunctionArgumentsdictionnaire du Context « dictionnaire » ; la liaison par défaut ignore cette collection, mais une liaison personnalisée fournie par ConfigureParameterBinding le biais peut choisir d’utiliser des arguments sources à partir de ces données.Le marshaling par défaut des paramètres du AIFunctionArguments dictionnaire permet de passer les valeurs directement dans l’appel de l’objet methodsi l’objet est déjà d’un type compatible. Sinon, si l’argument est un JsonElement, JsonDocumentou JsonNode, il est désérialisé dans le type de paramètre, en SerializerOptions utilisant s’il est fourni, ou autre à l’aide DefaultOptionsde . Si l’argument est autre chose, il est aller-retour via JSON, sérialisant l’objet en tant que JSON, puis le désérialisant au type attendu.
En général, les données fournies par le biais d’un AIFunctionArgumentsdictionnaire sont fournies à partir d’un service IA et doivent être considérées comme non approuvées et non approuvées. Pour fournir des données validées et approuvées à l’appel de method, envisagez method de pointer vers une méthode d’instance sur une instance configurée pour contenir l’état approprié. Un IServiceProvider paramètre peut également être utilisé pour résoudre les services à partir d’un conteneur d’injection de dépendances.
Par défaut, les valeurs de retour sont sérialisées à JsonElement l’aide optionsde 's SerializerOptions si elles sont fournies, ou bien à l’aide DefaultOptionsde . Toutefois, les valeurs de retour dont le type déclaré est AIContent, un type dérivé de AIContent, ou tout type assignable à partir IEnumerable<T> (par exemple AIContent[], ) List<AIContent>sont en cas spécial et ne sont pas sérialisées : la fonction créée retourne directement les instances d’origine pour permettre aux appelants (par exemple, un IChatClient) d’effectuer des tests de type et d’implémenter une gestion spécialisée. S’il MarshalResult est fourni, ce délégué régit le comportement à la place.
En plus du schéma de paramètre, un schéma JSON est également dérivé du type de retour de la méthode et exposé via le fichier retourné AIFunctionReturnJsonSchema. Pour les méthodes retournant Void, Taskou ValueTask, aucun schéma de retour n’est généré (la propriété est null). Pour les méthodes retournant Task<TResult> ou ValueTask<TResult>, le schéma est dérivé du type de résultat non extrait. La génération de schéma de retour peut être exclue via ExcludeResultSchema, et sa génération est régie par options's JsonSchemaCreateOptions.
S’applique à
Create(MethodInfo, Func<AIFunctionArguments,Object>, AIFunctionFactoryOptions)
- Source:
- AIFunctionFactory.cs
Crée une AIFunction instance pour une méthode, spécifiée par le biais d’une MethodInfo méthode d’instance et d’une Func<T,TResult> instance pour construire une instance de l’objet récepteur chaque fois que l’objet AIFunction est appelé.
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
Paramètres
- method
- MethodInfo
Méthode d’instance à représenter via le fichier créé AIFunction.
- createInstanceFunc
- Func<AIFunctionArguments,Object>
Rappel utilisé sur chaque appel de fonction pour créer une instance du type sur lequel la méthode method d’instance sera appelée. Si l’instance retournée est IAsyncDisposable ou IDisposable, elle est supprimée une fois method son appel terminé.
- options
- AIFunctionFactoryOptions
Métadonnées à utiliser pour remplacer les valeurs par défaut déduites à partir de method.
Retours
AIFunction Créé pour appeler method.
Exceptions
createInstanceFunc a la valeur null.
method contient un paramètre sans nom de paramètre.
Un paramètre vers method ou son type de retour n’est pas sérialisable.
Remarques
Les valeurs de retour sont sérialisées à JsonElement l’aide optionsde 's SerializerOptions. Les arguments qui ne sont pas déjà du type attendu sont marshalés vers le type attendu via JSON et à l’aide optionsde 's SerializerOptions. Si l’argument est un JsonElement, JsonDocumentou JsonNode, il est désérialisé directement. Si l’argument est inconnu, il est aller-retour via JSON, sérialisant l’objet en tant que JSON, puis le désérialisant au type attendu.
Par défaut, tous les paramètres à method sourcer à partir du AIFunctionArgumentsdictionnaire des paires clé/valeur et sont représentés dans le schéma JSON de la fonction, tel qu’exposé dans le fichier retourné AIFunctionJsonSchema. Il existe quelques exceptions à ceci :
- CancellationToken les paramètres sont automatiquement liés à l’appel CancellationToken passé via InvokeAsync(AIFunctionArguments, CancellationToken)le paramètre 's CancellationToken . Le paramètre n’est pas inclus dans le schéma JSON généré. Le comportement des CancellationToken paramètres ne peut pas être substitué.
- Par défaut, IServiceProvider les paramètres sont liés à partir de la Services propriété et ne sont pas inclus dans le schéma JSON. Si le paramètre est facultatif, de sorte qu’une valeur par défaut est fournie, Services est autorisé à être
null; sinon, Services doit être nonnull- ou si l’appel échoue avec une exception en raison de la nature requise du paramètre. La gestion des IServiceProvider paramètres peut être substituée via ConfigureParameterBinding. - Par défaut, AIFunctionArguments les paramètres sont liés directement à l’instance AIFunctionArguments passée InvokeAsync(AIFunctionArguments, CancellationToken) et ne sont pas inclus dans le schéma JSON. Si l’instance AIFunctionArguments passée est
nullInvokeAsync(AIFunctionArguments, CancellationToken) , l’implémentation AIFunction fabrique une instance vide, de sorte que les paramètres de type AIFunctionArguments peuvent toujours être satisfaits, qu’ils soient facultatifs ou non. La gestion des AIFunctionArguments paramètres peut être substituée via ConfigureParameterBinding.
options paramètre ; pour chaque paramètre, le délégué est activé pour choisir si le paramètre doit être inclus dans le schéma généré et comment sa valeur doit être liée, y compris la gestion de la facultatifité (par défaut, les paramètres requis qui ne sont pas inclus dans le AIFunctionArguments dictionnaire entraînent une exception levée). Des informations de contexte supplémentaires faiblement typées peuvent être transmises InvokeAsync(AIFunctionArguments, CancellationToken) via le AIFunctionArgumentsdictionnaire du Context « dictionnaire » ; la liaison par défaut ignore cette collection, mais une liaison personnalisée fournie par ConfigureParameterBinding le biais peut choisir d’utiliser des arguments sources à partir de ces données.Le marshaling par défaut des paramètres du AIFunctionArguments dictionnaire permet de passer les valeurs directement dans l’appel de l’objet methodsi l’objet est déjà d’un type compatible. Sinon, si l’argument est un JsonElement, JsonDocumentou JsonNode, il est désérialisé dans le type de paramètre, en SerializerOptions utilisant s’il est fourni, ou autre à l’aide DefaultOptionsde . Si l’argument est autre chose, il est aller-retour via JSON, sérialisant l’objet en tant que JSON, puis le désérialisant au type attendu.
En général, les données fournies par le biais d’un AIFunctionArgumentsdictionnaire sont fournies à partir d’un service IA et doivent être considérées comme non approuvées et non approuvées. Pour fournir des données validées et approuvées à l’appel de method, l’instance construite pour chaque appel peut contenir ces données, de sorte qu’elles soient ensuite disponibles en method tant que données d’instance. Un IServiceProvider paramètre peut également être utilisé pour résoudre les services à partir d’un conteneur d’injection de dépendances.
Par défaut, les valeurs de retour sont sérialisées à JsonElement l’aide optionsde 's SerializerOptions si elles sont fournies, ou bien à l’aide DefaultOptionsde . Toutefois, les valeurs de retour dont le type déclaré est AIContent, un type dérivé de AIContent, ou tout type assignable sont IEnumerable<T> retournés directement sans sérialisation. La gestion des valeurs de retour peut être substituée via MarshalResult.
En plus du schéma de paramètre, un schéma JSON est également dérivé du type de retour de la méthode et exposé via le fichier retourné AIFunctionReturnJsonSchema. Pour les méthodes retournant Void, Taskou ValueTask, aucun schéma de retour n’est généré (la propriété est null). Pour les méthodes retournant Task<TResult> ou ValueTask<TResult>, le schéma est dérivé du type de résultat non extrait. La génération de schéma de retour peut être exclue via ExcludeResultSchema, et sa génération est régie par options's JsonSchemaCreateOptions.
S’applique à
Create(MethodInfo, Object, AIFunctionFactoryOptions)
- Source:
- AIFunctionFactory.cs
Crée une AIFunction instance pour une méthode, spécifiée via une MethodInfo instance et un objet cible facultatif si la méthode est une méthode d’instance.
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
Paramètres
- method
- MethodInfo
Méthode à représenter via le fichier créé AIFunction.
- target
- Object
Objet cible pour le method cas où il représente une méthode d’instance.
Cela doit être null si et uniquement s’il s’agit method d’une méthode statique.
- options
- AIFunctionFactoryOptions
Métadonnées à utiliser pour remplacer les valeurs par défaut déduites à partir de method.
Retours
AIFunction Créé pour appeler method.
Exceptions
method représente une méthode d’instance, mais target a la valeur Null.
method contient un paramètre sans nom de paramètre.
Un paramètre vers method ou son type de retour n’est pas sérialisable.
Remarques
Par défaut, tous les paramètres à method sourcer à partir du AIFunctionArgumentsdictionnaire des paires clé/valeur et sont représentés dans le schéma JSON de la fonction, tel qu’exposé dans le fichier retourné AIFunctionJsonSchema. Il existe quelques exceptions à ceci :
- CancellationToken les paramètres sont automatiquement liés à l’appel CancellationToken passé via InvokeAsync(AIFunctionArguments, CancellationToken)le paramètre 's CancellationToken . Le paramètre n’est pas inclus dans le schéma JSON généré. Le comportement des CancellationToken paramètres ne peut pas être substitué.
- Par défaut, IServiceProvider les paramètres sont liés à partir de la Services propriété et ne sont pas inclus dans le schéma JSON. Si le paramètre est facultatif, de sorte qu’une valeur par défaut est fournie, Services est autorisé à être
null; sinon, Services doit être nonnull- ou si l’appel échoue avec une exception en raison de la nature requise du paramètre. La gestion des IServiceProvider paramètres peut être substituée via ConfigureParameterBinding. - Par défaut, AIFunctionArguments les paramètres sont liés directement à l’instance AIFunctionArguments passée InvokeAsync(AIFunctionArguments, CancellationToken) et ne sont pas inclus dans le schéma JSON. Si l’instance AIFunctionArguments passée est
nullInvokeAsync(AIFunctionArguments, CancellationToken) , l’implémentation AIFunction fabrique une instance vide, de sorte que les paramètres de type AIFunctionArguments peuvent toujours être satisfaits, qu’ils soient facultatifs ou non. La gestion des AIFunctionArguments paramètres peut être substituée via ConfigureParameterBinding.
options paramètre ; pour chaque paramètre, le délégué est activé pour choisir si le paramètre doit être inclus dans le schéma généré et comment sa valeur doit être liée, y compris la gestion de la facultatifité (par défaut, les paramètres requis qui ne sont pas inclus dans le AIFunctionArguments dictionnaire entraînent une exception levée). Des informations de contexte supplémentaires faiblement typées peuvent être transmises InvokeAsync(AIFunctionArguments, CancellationToken) via le AIFunctionArgumentsdictionnaire du Context « dictionnaire » ; la liaison par défaut ignore cette collection, mais une liaison personnalisée fournie par ConfigureParameterBinding le biais peut choisir d’utiliser des arguments sources à partir de ces données.Le marshaling par défaut des paramètres du AIFunctionArguments dictionnaire permet de passer les valeurs directement dans l’appel de l’objet methodsi l’objet est déjà d’un type compatible. Sinon, si l’argument est un JsonElement, JsonDocumentou JsonNode, il est désérialisé dans le type de paramètre, en SerializerOptions utilisant s’il est fourni, ou autre à l’aide DefaultOptionsde . Si l’argument est autre chose, il est aller-retour via JSON, sérialisant l’objet en tant que JSON, puis le désérialisant au type attendu.
En général, les données fournies par le biais d’un AIFunctionArgumentsdictionnaire sont fournies à partir d’un service IA et doivent être considérées comme non approuvées et non approuvées. Pour fournir des données validées et approuvées à l’appel de method, envisagez method de pointer vers une méthode d’instance sur une instance configurée pour contenir l’état approprié. Un IServiceProvider paramètre peut également être utilisé pour résoudre les services à partir d’un conteneur d’injection de dépendances.
Par défaut, les valeurs de retour sont sérialisées à JsonElement l’aide optionsde 's SerializerOptions si elles sont fournies, ou bien à l’aide DefaultOptionsde . Toutefois, les valeurs de retour dont le type déclaré est AIContent, un type dérivé de , ou tout type assignable à partir IEnumerable<T> de AIContentne sont pas sérialisés et sont retournés directement. La gestion des valeurs de retour peut être substituée via MarshalResult.
En plus du schéma de paramètre, un schéma JSON est également dérivé du type de retour de la méthode et exposé via le fichier retourné AIFunctionReturnJsonSchema. Pour les méthodes retournant Void, Taskou ValueTask, aucun schéma de retour n’est généré (la propriété est null). Pour les méthodes retournant Task<TResult> ou ValueTask<TResult>, le schéma est dérivé du type de résultat non extrait. La génération de schéma de retour peut être exclue via ExcludeResultSchema, et sa génération est régie par options's JsonSchemaCreateOptions.
S’applique à
Create(Delegate, String, String, JsonSerializerOptions)
- Source:
- AIFunctionFactory.cs
Crée une AIFunction instance pour une méthode, spécifiée via un délégué.
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
Paramètres
- method
- Delegate
Méthode à représenter via le fichier créé AIFunction.
- name
- String
Nom à utiliser pour le AIFunction. Si null, le nom sera dérivé d’un DisplayNameAttribute élément sur method, s’il est disponible ou autre du nom de method.
- description
- String
Description à utiliser pour le AIFunction. Si null, une description est dérivée de n’importe laquelle DescriptionAttribute , methodsi disponible.
- serializerOptions
- JsonSerializerOptions
Utilisé JsonSerializerOptions pour marshaler les paramètres de fonction et toute valeur de retour.
Retours
AIFunction Créé pour appeler method.
Exceptions
method a la valeur null.
Paramètre à method ne pas sérialisable.
Remarques
Tous les paramètres à method sourcer à partir du AIFunctionArgumentsdictionnaire des paires clé/valeur et sont représentés dans le schéma JSON de la fonction, tel qu’exposé dans le fichier JsonSchemaretourné AIFunction. Il existe quelques exceptions à ceci :
- CancellationToken les paramètres sont automatiquement liés à l’appel CancellationToken passé via InvokeAsync(AIFunctionArguments, CancellationToken)le paramètre 's CancellationToken . Le paramètre n’est pas inclus dans le schéma JSON généré.
- Par défaut, IServiceProvider les paramètres sont liés à partir de la Services propriété et ne sont pas inclus dans le schéma JSON. Si le paramètre est facultatif, de sorte qu’une valeur par défaut est fournie, Services est autorisé à être
null; sinon, Services doit être nonnull- ou si l’appel échoue avec une exception en raison de la nature requise du paramètre. - Par défaut, AIFunctionArguments les paramètres sont liés directement à l’instance AIFunctionArguments passée InvokeAsync(AIFunctionArguments, CancellationToken) et ne sont pas inclus dans le schéma JSON. Si l’instance AIFunctionArguments passée est
nullInvokeAsync(AIFunctionArguments, CancellationToken) , l’implémentation AIFunction fabrique une instance vide, de sorte que les paramètres de type AIFunctionArguments peuvent toujours être satisfaits, qu’ils soient facultatifs ou non.
Le marshaling des paramètres du AIFunctionArguments dictionnaire permet de passer les valeurs directement dans l’appel de l’objet methodsi l’objet est déjà d’un type compatible. Sinon, si l’argument est un JsonElement, JsonDocumentou JsonNode, il est désérialisé dans le type de paramètre, en utilisant serializerOptions le cas échéant, ou sinon DefaultOptions. Si l’argument est autre chose, il est aller-retour via JSON, sérialisant l’objet en tant que JSON, puis le désérialisant au type attendu.
En général, les données fournies par le biais d’un AIFunctionArgumentsdictionnaire sont fournies à partir d’un service IA et doivent être considérées comme non approuvées et non approuvées. Pour fournir des données validées et approuvées à l’appel de method, envisagez method de pointer vers une méthode d’instance sur une instance configurée pour contenir l’état approprié. Un IServiceProvider paramètre peut également être utilisé pour résoudre les services à partir d’un conteneur d’injection de dépendances.
Les valeurs de retour sont sérialisées à JsonElement l’aide serializerOptions si elles sont fournies ou si elles sont fournies DefaultOptions. Toutefois, les valeurs de retour dont le type déclaré est AIContent, un type dérivé de , ou tout type assignable à partir de AIContentIEnumerable<T> ne sont pas sérialisés ; ils sont retournés as-is pour faciliter la gestion spécialisée.
Un schéma JSON est également dérivé du type de retour de la méthode et exposé via ReturnJsonSchema. Pour les méthodes retournant Void, Taskou ValueTask, aucun schéma de retour n’est généré. Pour les méthodes retournant Task<TResult> ou ValueTask<TResult>, le schéma est dérivé du type de résultat non extrait.
S’applique à
Create(MethodInfo, Object, String, String, JsonSerializerOptions)
- Source:
- AIFunctionFactory.cs
Crée une AIFunction instance pour une méthode, spécifiée via une MethodInfo instance et un objet cible facultatif si la méthode est une méthode d’instance.
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
Paramètres
- method
- MethodInfo
Méthode à représenter via le fichier créé AIFunction.
- target
- Object
Objet cible pour le method cas où il représente une méthode d’instance.
Cela doit être null si et uniquement s’il s’agit method d’une méthode statique.
- name
- String
Nom à utiliser pour le AIFunction. Si null, le nom sera dérivé d’un DisplayNameAttribute élément sur method, s’il est disponible ou autre du nom de method.
- description
- String
Description à utiliser pour le AIFunction. Si null, une description est dérivée de n’importe laquelle DescriptionAttribute , methodsi disponible.
- serializerOptions
- JsonSerializerOptions
Utilisé JsonSerializerOptions pour marshaler les paramètres de fonction et la valeur de retour.
Retours
AIFunction Créé pour appeler method.
Exceptions
method représente une méthode d’instance, mais target a la valeur Null.
method contient un paramètre sans nom de paramètre.
Un paramètre vers method ou son type de retour n’est pas sérialisable.
Remarques
Tous les paramètres à method sourcer à partir du AIFunctionArgumentsdictionnaire des paires clé/valeur et sont représentés dans le schéma JSON de la fonction, tel qu’exposé dans le fichier JsonSchemaretourné AIFunction. Il existe quelques exceptions à ceci :
- CancellationToken les paramètres sont automatiquement liés à l’appel CancellationToken passé via InvokeAsync(AIFunctionArguments, CancellationToken)le paramètre 's CancellationToken . Le paramètre n’est pas inclus dans le schéma JSON généré.
- Par défaut, IServiceProvider les paramètres sont liés à partir de la Services propriété et ne sont pas inclus dans le schéma JSON. Si le paramètre est facultatif, de sorte qu’une valeur par défaut est fournie, Services est autorisé à être
null; sinon, Services doit être nonnull- ou si l’appel échoue avec une exception en raison de la nature requise du paramètre. - Par défaut, AIFunctionArguments les paramètres sont liés directement à l’instance AIFunctionArguments passée InvokeAsync(AIFunctionArguments, CancellationToken) et ne sont pas inclus dans le schéma JSON. Si l’instance AIFunctionArguments passée est
nullInvokeAsync(AIFunctionArguments, CancellationToken) , l’implémentation AIFunction fabrique une instance vide, de sorte que les paramètres de type AIFunctionArguments peuvent toujours être satisfaits, qu’ils soient facultatifs ou non.
Le marshaling des paramètres du AIFunctionArguments dictionnaire permet de passer les valeurs directement dans l’appel de l’objet methodsi l’objet est déjà d’un type compatible. Sinon, si l’argument est un JsonElement, JsonDocumentou JsonNode, il est désérialisé dans le type de paramètre, en utilisant serializerOptions le cas échéant, ou sinon DefaultOptions. Si l’argument est autre chose, il est aller-retour via JSON, sérialisant l’objet en tant que JSON, puis le désérialisant au type attendu.
En général, les données fournies par le biais d’un AIFunctionArgumentsdictionnaire sont fournies à partir d’un service IA et doivent être considérées comme non approuvées et non approuvées. Pour fournir des données validées et approuvées à l’appel de method, envisagez method de pointer vers une méthode d’instance sur une instance configurée pour contenir l’état approprié. Un IServiceProvider paramètre peut également être utilisé pour résoudre les services à partir d’un conteneur d’injection de dépendances.
Les valeurs de retour sont sérialisées à JsonElement l’aide serializerOptions si elles sont fournies ou si elles sont fournies DefaultOptions. Toutefois, les valeurs de retour dont le type déclaré est AIContent, un type dérivé de , ou tout type assignable à partir IEnumerable<T> de AIContentsont retournés sans sérialisation pour activer la gestion spécialisée.
Un schéma JSON est également dérivé du type de retour de la méthode et exposé via ReturnJsonSchema. Pour les méthodes retournant Void, Taskou ValueTask, aucun schéma de retour n’est généré. Pour les méthodes retournant Task<TResult> ou ValueTask<TResult>, le schéma est dérivé du type de résultat non extrait.