Condividi tramite


AIFunctionFactory.Create Metodo

Definizione

Overload

Nome Descrizione
Create(Delegate, AIFunctionFactoryOptions)

Crea un'istanza AIFunction di per un metodo, specificato tramite un delegato.

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

Crea un'istanza AIFunction di per un metodo, specificata tramite un MethodInfo per un metodo di istanza e un Func<T,TResult> oggetto per la costruzione di un'istanza dell'oggetto ricevitore ogni volta AIFunction che viene richiamato .

Create(MethodInfo, Object, AIFunctionFactoryOptions)

Crea un'istanza AIFunction di per un metodo, specificata tramite un'istanza MethodInfo e un oggetto di destinazione facoltativo se il metodo è un metodo di istanza.

Create(Delegate, String, String, JsonSerializerOptions)

Crea un'istanza AIFunction di per un metodo, specificato tramite un delegato.

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

Crea un'istanza AIFunction di per un metodo, specificata tramite un'istanza MethodInfo e un oggetto di destinazione facoltativo se il metodo è un metodo di istanza.

Create(Delegate, AIFunctionFactoryOptions)

Origine:
AIFunctionFactory.cs

Crea un'istanza AIFunction di per un metodo, specificato tramite un delegato.

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

Parametri

method
Delegate

Metodo da rappresentare tramite l'oggetto creato AIFunction.

options
AIFunctionFactoryOptions

Metadati da usare per eseguire l'override dei valori predefiniti dedotti da method.

Valori restituiti

Oggetto creato AIFunction per richiamare method.

Eccezioni

method è null.

Parametro da method non serializzabile.

Commenti

Per impostazione predefinita, tutti i parametri di method vengono originati dal AIFunctionArgumentsdizionario delle coppie chiave/valore e sono rappresentati nello schema JSON per la funzione, come esposto nell'oggetto restituito AIFunction.JsonSchema Esistono alcune eccezioni a questo scopo:

Per impostazione predefinita, tutti gli altri tipi di parametri sono associati dal AIFunctionArguments dizionario passato a InvokeAsync(AIFunctionArguments, CancellationToken) e sono inclusi nello schema JSON generato. Può essere sottoposto a override dall'oggetto ConfigureParameterBinding fornito tramite il options parametro . Per ogni parametro, il delegato è abilitato per scegliere se il parametro deve essere incluso nello schema generato e come deve essere associato il relativo valore, inclusa la gestione della facoltatività (per impostazione predefinita, i parametri obbligatori non inclusi nel AIFunctionArguments dizionario genereranno un'eccezione generata). È possibile passare InvokeAsync(AIFunctionArguments, CancellationToken) informazioni di contesto aggiuntive di tipo libero tramite il AIFunctionArgumentsdizionario del Context . L'associazione predefinita ignora questa raccolta, ma un'associazione personalizzata fornita tramite ConfigureParameterBinding può scegliere di usare argomenti di origine da questi dati.

Il marshalling predefinito dei parametri dal AIFunctionArguments dizionario consente di passare i valori direttamente alla methodchiamata dell'oggetto se l'oggetto è già di un tipo compatibile. In caso contrario, se l'argomento è un JsonElementoggetto , JsonDocumento JsonNode, viene deserializzato nel tipo di parametro, utilizzando SerializerOptions se specificato o usando DefaultOptions. Se l'argomento è qualcos'altro, viene arrotondato tramite JSON, serializzando l'oggetto come JSON e quindi deserializzandolo nel tipo previsto.

In generale, i dati forniti tramite un AIFunctionArgumentsdizionario vengono forniti da un servizio di intelligenza artificiale e devono essere considerati non convalidati e non attendibili. Per fornire dati convalidati e attendibili alla chiamata di , valutare la possibilità di methodpuntare method a un metodo di istanza in un'istanza configurata per mantenere lo stato appropriato. È anche possibile usare un IServiceProvider parametro per risolvere i servizi da un contenitore di inserimento delle dipendenze.

Per impostazione predefinita, i valori restituiti vengono serializzati per JsonElement l'uso di SerializerOptions se optionsspecificato oppure tramite DefaultOptions. Tuttavia, i valori restituiti il cui tipo dichiarato è AIContent, un tipo derivato di AIContento qualsiasi tipo assegnabile da IEnumerable<T> (ad AIContent[]esempio , List<AIContent>) sono maiuscole e minuscole speciali e non vengono serializzate: la funzione creata restituisce direttamente le istanze originali per consentire ai chiamanti (ad esempio IChatClientun ) di eseguire test di tipo e implementare la gestione specializzata. Se MarshalResult viene specificato, tale delegato controlla invece il comportamento.

Oltre allo schema dei parametri, uno schema JSON è derivato anche dal tipo restituito del metodo ed esposto tramite l'oggetto restituito AIFunction.ReturnJsonSchema Per i metodi che Voidrestituiscono , Tasko ValueTask, non viene generato alcuno schema restituito (la proprietà è null). Per i metodi che Task<TResult> restituiscono o ValueTask<TResult>, lo schema è derivato dal tipo di risultato non sottoposto a wrapping. La generazione dello schema restituito può essere esclusa tramite ExcludeResultSchemae la relativa generazione è governata da options.JsonSchemaCreateOptions

Si applica a

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

Origine:
AIFunctionFactory.cs

Crea un'istanza AIFunction di per un metodo, specificata tramite un MethodInfo per un metodo di istanza e un Func<T,TResult> oggetto per la costruzione di un'istanza dell'oggetto ricevitore ogni volta AIFunction che viene richiamato .

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

Parametri

method
MethodInfo

Metodo di istanza da rappresentare tramite l'oggetto creato AIFunction.

createInstanceFunc
Func<AIFunctionArguments,Object>

Callback usato in ogni chiamata di funzione per creare un'istanza del tipo in cui verrà richiamato il metodo method di istanza. Se l'istanza restituita è IAsyncDisposable o IDisposable, verrà eliminata dopo method il completamento della chiamata.

options
AIFunctionFactoryOptions

Metadati da usare per eseguire l'override dei valori predefiniti dedotti da method.

Valori restituiti

Oggetto creato AIFunction per richiamare method.

Eccezioni

createInstanceFunc è null.

method contiene un parametro senza un nome di parametro.

Un parametro per method o il relativo tipo restituito non è serializzabile.

Commenti

I valori restituiti vengono serializzati per JsonElement l'uso optionsdi SerializerOptions. Gli argomenti che non sono già del tipo previsto vengono sottoposto a marshalling al tipo previsto tramite JSON e usando options's SerializerOptions. Se l'argomento è , JsonElementJsonDocumento JsonNode, viene deserializzato direttamente. Se l'argomento è sconosciuto, viene arrotondato tramite JSON, serializzando l'oggetto come JSON e quindi deserializzandolo nel tipo previsto.

Per impostazione predefinita, tutti i parametri di method vengono originati dal AIFunctionArgumentsdizionario delle coppie chiave/valore e sono rappresentati nello schema JSON per la funzione, come esposto nell'oggetto restituito AIFunction.JsonSchema Esistono alcune eccezioni a questo scopo:

Per impostazione predefinita, tutti gli altri tipi di parametri sono associati dal AIFunctionArguments dizionario passato a InvokeAsync(AIFunctionArguments, CancellationToken) e sono inclusi nello schema JSON generato. Può essere sottoposto a override dall'oggetto ConfigureParameterBinding fornito tramite il options parametro . Per ogni parametro, il delegato è abilitato per scegliere se il parametro deve essere incluso nello schema generato e come deve essere associato il relativo valore, inclusa la gestione della facoltatività (per impostazione predefinita, i parametri obbligatori non inclusi nel AIFunctionArguments dizionario genereranno un'eccezione generata). È possibile passare InvokeAsync(AIFunctionArguments, CancellationToken) informazioni di contesto aggiuntive di tipo libero tramite il AIFunctionArgumentsdizionario del Context . L'associazione predefinita ignora questa raccolta, ma un'associazione personalizzata fornita tramite ConfigureParameterBinding può scegliere di usare argomenti di origine da questi dati.

Il marshalling predefinito dei parametri dal AIFunctionArguments dizionario consente di passare i valori direttamente alla methodchiamata dell'oggetto se l'oggetto è già di un tipo compatibile. In caso contrario, se l'argomento è un JsonElementoggetto , JsonDocumento JsonNode, viene deserializzato nel tipo di parametro, utilizzando SerializerOptions se specificato o usando DefaultOptions. Se l'argomento è qualcos'altro, viene arrotondato tramite JSON, serializzando l'oggetto come JSON e quindi deserializzandolo nel tipo previsto.

In generale, i dati forniti tramite un AIFunctionArgumentsdizionario vengono forniti da un servizio di intelligenza artificiale e devono essere considerati non convalidati e non attendibili. Per fornire dati convalidati e attendibili alla chiamata di method, l'istanza costruita per ogni chiamata può contenere tali dati, in modo che sia quindi disponibile come dati dell'istanza method . È anche possibile usare un IServiceProvider parametro per risolvere i servizi da un contenitore di inserimento delle dipendenze.

Per impostazione predefinita, i valori restituiti vengono serializzati per JsonElement l'uso di SerializerOptions se optionsspecificato oppure tramite DefaultOptions. Tuttavia, i valori restituiti il cui tipo dichiarato è AIContent, un tipo derivato di AIContento qualsiasi tipo assegnabile da IEnumerable<T> vengono restituiti direttamente senza serializzazione. La gestione dei valori restituiti può essere sottoposta a override tramite MarshalResult.

Oltre allo schema dei parametri, uno schema JSON è derivato anche dal tipo restituito del metodo ed esposto tramite l'oggetto restituito AIFunction.ReturnJsonSchema Per i metodi che Voidrestituiscono , Tasko ValueTask, non viene generato alcuno schema restituito (la proprietà è null). Per i metodi che Task<TResult> restituiscono o ValueTask<TResult>, lo schema è derivato dal tipo di risultato non sottoposto a wrapping. La generazione dello schema restituito può essere esclusa tramite ExcludeResultSchemae la relativa generazione è governata da options.JsonSchemaCreateOptions

Si applica a

Create(MethodInfo, Object, AIFunctionFactoryOptions)

Origine:
AIFunctionFactory.cs

Crea un'istanza AIFunction di per un metodo, specificata tramite un'istanza MethodInfo e un oggetto di destinazione facoltativo se il metodo è un metodo di istanza.

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

Parametri

method
MethodInfo

Metodo da rappresentare tramite l'oggetto creato AIFunction.

target
Object

Oggetto di destinazione per l'oggetto method se rappresenta un metodo di istanza. Deve essere null se e solo se method è un metodo statico.

options
AIFunctionFactoryOptions

Metadati da usare per eseguire l'override dei valori predefiniti dedotti da method.

Valori restituiti

Oggetto creato AIFunction per richiamare method.

Eccezioni

method rappresenta un metodo di istanza ma target è Null.

method contiene un parametro senza un nome di parametro.

Un parametro per method o il relativo tipo restituito non è serializzabile.

Commenti

Per impostazione predefinita, tutti i parametri di method vengono originati dal AIFunctionArgumentsdizionario delle coppie chiave/valore e sono rappresentati nello schema JSON per la funzione, come esposto nell'oggetto restituito AIFunction.JsonSchema Esistono alcune eccezioni a questo scopo:

Per impostazione predefinita, tutti gli altri tipi di parametri sono associati dal AIFunctionArguments dizionario passato a InvokeAsync(AIFunctionArguments, CancellationToken) e sono inclusi nello schema JSON generato. Può essere sottoposto a override dall'oggetto ConfigureParameterBinding fornito tramite il options parametro . Per ogni parametro, il delegato è abilitato per scegliere se il parametro deve essere incluso nello schema generato e come deve essere associato il relativo valore, inclusa la gestione della facoltatività (per impostazione predefinita, i parametri obbligatori non inclusi nel AIFunctionArguments dizionario genereranno un'eccezione generata). È possibile passare InvokeAsync(AIFunctionArguments, CancellationToken) informazioni di contesto aggiuntive tiptate in modo libero tramite il AIFunctionArgumentsdizionario del dizionario. Context L'associazione predefinita ignora questa raccolta, ma un'associazione personalizzata fornita tramite ConfigureParameterBinding può scegliere di usare argomenti di origine da questi dati.

Il marshalling predefinito dei parametri dal AIFunctionArguments dizionario consente di passare i valori direttamente alla methodchiamata dell'oggetto se l'oggetto è già di un tipo compatibile. In caso contrario, se l'argomento è un JsonElementoggetto , JsonDocumento JsonNode, viene deserializzato nel tipo di parametro, utilizzando SerializerOptions se specificato o usando DefaultOptions. Se l'argomento è qualcos'altro, viene arrotondato tramite JSON, serializzando l'oggetto come JSON e quindi deserializzandolo nel tipo previsto.

In generale, i dati forniti tramite un AIFunctionArgumentsdizionario vengono forniti da un servizio di intelligenza artificiale e devono essere considerati non convalidati e non attendibili. Per fornire dati convalidati e attendibili alla chiamata di , valutare la possibilità di methodpuntare method a un metodo di istanza in un'istanza configurata per mantenere lo stato appropriato. È anche possibile usare un IServiceProvider parametro per risolvere i servizi da un contenitore di inserimento delle dipendenze.

Per impostazione predefinita, i valori restituiti vengono serializzati per JsonElement l'uso di SerializerOptions se optionsspecificato oppure tramite DefaultOptions. Tuttavia, i valori restituiti il cui tipo dichiarato è AIContent, un tipo derivato di AIContento qualsiasi tipo assegnabile da IEnumerable<T> non vengono serializzati e vengono invece restituiti direttamente. La gestione dei valori restituiti può essere sottoposta a override tramite MarshalResult.

Oltre allo schema dei parametri, uno schema JSON è derivato anche dal tipo restituito del metodo ed esposto tramite l'oggetto restituito AIFunction.ReturnJsonSchema Per i metodi che Voidrestituiscono , Tasko ValueTask, non viene generato alcuno schema restituito (la proprietà è null). Per i metodi che Task<TResult> restituiscono o ValueTask<TResult>, lo schema è derivato dal tipo di risultato non sottoposto a wrapping. La generazione dello schema restituito può essere esclusa tramite ExcludeResultSchemae la relativa generazione è governata da options.JsonSchemaCreateOptions

Si applica a

Create(Delegate, String, String, JsonSerializerOptions)

Origine:
AIFunctionFactory.cs

Crea un'istanza AIFunction di per un metodo, specificato tramite un delegato.

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

Parametri

method
Delegate

Metodo da rappresentare tramite l'oggetto creato AIFunction.

name
String

Nome da utilizzare per l'oggetto AIFunction. Se null, il nome verrà derivato da qualsiasi DisplayNameAttribute in method, se disponibile o altro dal nome di method.

description
String

Descrizione da utilizzare per .AIFunction Se null, una descrizione verrà derivata da qualsiasi DescriptionAttribute in method, se disponibile.

serializerOptions
JsonSerializerOptions

Oggetto JsonSerializerOptions utilizzato per effettuare il marshalling dei parametri della funzione e di qualsiasi valore restituito.

Valori restituiti

Oggetto creato AIFunction per richiamare method.

Eccezioni

method è null.

Parametro da method non serializzabile.

Commenti

Tutti i parametri da method vengono originati dal AIFunctionArgumentsdizionario delle coppie chiave/valore e sono rappresentati nello schema JSON per la funzione, come esposto nella classe restituita AIFunction.JsonSchema Esistono alcune eccezioni a questo scopo:

Tutti gli altri tipi di parametri vengono associati dal AIFunctionArguments dizionario passato in InvokeAsync(AIFunctionArguments, CancellationToken) e sono inclusi nello schema JSON generato.

Il marshalling dei parametri dal AIFunctionArguments dizionario consente di passare i valori direttamente alla methodchiamata dell'oggetto se l'oggetto è già di un tipo compatibile. In caso contrario, se l'argomento è , JsonElemento , viene deserializzato nel tipo di parametro, utilizzando serializerOptions se specificato o altrimenti DefaultOptions.JsonNodeJsonDocument Se l'argomento è qualcos'altro, viene arrotondato tramite JSON, serializzando l'oggetto come JSON e quindi deserializzandolo nel tipo previsto.

In generale, i dati forniti tramite un AIFunctionArgumentsdizionario vengono forniti da un servizio di intelligenza artificiale e devono essere considerati non convalidati e non attendibili. Per fornire dati convalidati e attendibili alla chiamata di , valutare la possibilità di methodpuntare method a un metodo di istanza in un'istanza configurata per mantenere lo stato appropriato. È anche possibile usare un IServiceProvider parametro per risolvere i servizi da un contenitore di inserimento delle dipendenze.

I valori restituiti vengono serializzati per JsonElement l'uso se serializerOptions specificato oppure tramite DefaultOptions. Tuttavia, i valori restituiti il cui tipo dichiarato è AIContent, un tipo derivato di AIContento qualsiasi tipo assegnabile da IEnumerable<T> non vengono serializzati; vengono restituiti as-is per facilitare la gestione specializzata.

Uno schema JSON è derivato anche dal tipo restituito del metodo ed esposto tramite ReturnJsonSchema. Per i metodi che Voidrestituiscono , Tasko ValueTask, non viene generato alcuno schema restituito. Per i metodi che Task<TResult> restituiscono o ValueTask<TResult>, lo schema è derivato dal tipo di risultato non sottoposto a wrapping.

Si applica a

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

Origine:
AIFunctionFactory.cs

Crea un'istanza AIFunction di per un metodo, specificata tramite un'istanza MethodInfo e un oggetto di destinazione facoltativo se il metodo è un metodo di istanza.

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

Parametri

method
MethodInfo

Metodo da rappresentare tramite l'oggetto creato AIFunction.

target
Object

Oggetto di destinazione per l'oggetto method se rappresenta un metodo di istanza. Deve essere null se e solo se method è un metodo statico.

name
String

Nome da utilizzare per l'oggetto AIFunction. Se null, il nome verrà derivato da qualsiasi DisplayNameAttribute in method, se disponibile o altro dal nome di method.

description
String

Descrizione da utilizzare per .AIFunction Se null, una descrizione verrà derivata da qualsiasi DescriptionAttribute in method, se disponibile.

serializerOptions
JsonSerializerOptions

Oggetto JsonSerializerOptions utilizzato per effettuare il marshalling dei parametri della funzione e il valore restituito.

Valori restituiti

Oggetto creato AIFunction per richiamare method.

Eccezioni

method rappresenta un metodo di istanza ma target è Null.

method contiene un parametro senza un nome di parametro.

Un parametro per method o il relativo tipo restituito non è serializzabile.

Commenti

Tutti i parametri da method vengono originati dal AIFunctionArgumentsdizionario delle coppie chiave/valore e sono rappresentati nello schema JSON per la funzione, come esposto nella classe restituita AIFunction.JsonSchema Esistono alcune eccezioni a questo scopo:

Tutti gli altri tipi di parametri vengono associati dal AIFunctionArguments dizionario passato in InvokeAsync(AIFunctionArguments, CancellationToken) e sono inclusi nello schema JSON generato.

Il marshalling dei parametri dal AIFunctionArguments dizionario consente di passare i valori direttamente alla methodchiamata dell'oggetto se l'oggetto è già di un tipo compatibile. In caso contrario, se l'argomento è , JsonElemento , viene deserializzato nel tipo di parametro, utilizzando serializerOptions se specificato o altrimenti DefaultOptions.JsonNodeJsonDocument Se l'argomento è qualcos'altro, viene arrotondato tramite JSON, serializzando l'oggetto come JSON e quindi deserializzandolo nel tipo previsto.

In generale, i dati forniti tramite un AIFunctionArgumentsdizionario vengono forniti da un servizio di intelligenza artificiale e devono essere considerati non convalidati e non attendibili. Per fornire dati convalidati e attendibili alla chiamata di , valutare la possibilità di methodpuntare method a un metodo di istanza in un'istanza configurata per mantenere lo stato appropriato. È anche possibile usare un IServiceProvider parametro per risolvere i servizi da un contenitore di inserimento delle dipendenze.

I valori restituiti vengono serializzati per JsonElement l'uso se serializerOptions specificato oppure tramite DefaultOptions. Tuttavia, i valori restituiti il cui tipo dichiarato è AIContent, un tipo derivato di AIContento qualsiasi tipo assegnabile da IEnumerable<T> vengono restituiti senza serializzazione per abilitare la gestione specializzata.

Uno schema JSON è derivato anche dal tipo restituito del metodo ed esposto tramite ReturnJsonSchema. Per i metodi che Voidrestituiscono , Tasko ValueTask, non viene generato alcuno schema restituito. Per i metodi che Task<TResult> restituiscono o ValueTask<TResult>, lo schema è derivato dal tipo di risultato non sottoposto a wrapping.

Si applica a