AIFunctionFactory.Create Metod

Definition

Skapar en AIFunction instans för en metod som anges via ett ombud.

Överlagringar

Name Description
Create(Delegate, AIFunctionFactoryOptions)

Skapar en AIFunction instans för en metod som anges via ett ombud.

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

Skapar en AIFunction instans för en metod som anges via en för en MethodInfo instansmetod och en Func<T,TResult> för att konstruera en instans av mottagarobjektet varje gång som AIFunction anropas.

Create(MethodInfo, Object, AIFunctionFactoryOptions)

Skapar en AIFunction instans för en metod som anges via en MethodInfo instans och ett valfritt målobjekt om metoden är en instansmetod.

Create(Delegate, String, String, JsonSerializerOptions)

Skapar en AIFunction instans för en metod som anges via ett ombud.

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

Skapar en AIFunction instans för en metod som anges via en MethodInfo instans och ett valfritt målobjekt om metoden är en instansmetod.

Create(Delegate, AIFunctionFactoryOptions)

Källa:
AIFunctionFactory.cs

Skapar en AIFunction instans för en metod som anges via ett ombud.

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

Parametrar

method
Delegate

Den metod som ska representeras via den skapade AIFunction.

options
AIFunctionFactoryOptions

Metadata som ska användas för att åsidosätta standardvärden som härleds från method.

Returer

Den skapade AIFunction för att methodanropa .

Undantag

method är null.

En parameter till method är inte serialiserbar.

Kommentarer

Som standard kommer alla parametrar som method ska hämtas från AIFunctionArgumentsordlistan med nyckel/värde-par och representeras i JSON-schemat för funktionen, som exponeras i de returnerade AIFunction.JsonSchema Det finns några undantag till detta:

Alla andra parametertyper är som standard bundna från ordlistan AIFunctionArguments som skickas till InvokeAsync(AIFunctionArguments, CancellationToken) och ingår i det genererade JSON-schemat. Detta kan åsidosättas av den ConfigureParameterBinding som tillhandahålls via parametern options . För varje parameter är ombudet aktiverat för att välja om parametern ska ingå i det genererade schemat och hur dess värde ska bindas, inklusive hantering av valfrihet (som standard resulterar obligatoriska parametrar som inte ingår i AIFunctionArguments ordlistan i ett undantag som genereras). Löst typad ytterligare kontextinformation kan skickas till InvokeAsync(AIFunctionArguments, CancellationToken) via AIFunctionArgumentsordlistan. Standardbindningen ignorerar den här samlingen, men en anpassad bindning som tillhandahålls Context via ConfigureParameterBinding kan välja källargument från dessa data.

Standardmarhering av parametrar från AIFunctionArguments ordlistan tillåter att värden skickas direkt till methodanropet om objektet redan är av en kompatibel typ. Annars, om argumentet är en JsonElement, , eller JsonDocument, deserialiseras det till parametertypen, använder JsonNode om det tillhandahålls eller annars använder SerializerOptionsDefaultOptions. Om argumentet är något annat avrundas det genom JSON, serialiserar objektet som JSON och deserialiserar det sedan till den förväntade typen.

I allmänhet tillhandahålls de data som tillhandahålls via en AIFunctionArgumentsordlista från en AI-tjänst och bör betraktas som ovaliderade och obetrodda. Om du vill tillhandahålla verifierade och betrodda data till anropet av methodkan du överväga att method peka på en instansmetod på en instans som har konfigurerats för att lagra rätt tillstånd. En IServiceProvider parameter kan också användas för att lösa tjänster från en container för beroendeinmatning.

Som standard serialiseras returvärden till att JsonElement använda options's om det tillhandahålls SerializerOptions , eller så använder du DefaultOptions. Returvärden vars deklarerade typ är AIContent, en härledd typ av AIContenteller någon typ som kan tilldelas från IEnumerable<T> (t.ex. AIContent[], List<AIContent>) är specialfall och serialiseras inte. Den skapade funktionen returnerar de ursprungliga instanserna direkt för att aktivera anropare (till exempel en IChatClient) för att utföra typtester och implementera specialiserad hantering. Om MarshalResult anges styr ombudet beteendet i stället.

Förutom parameterschemat härleds även ett JSON-schema från metodens returtyp och exponeras via de returnerade AIFunction.ReturnJsonSchema För metoder som returnerar Void, Taskeller ValueTask, skapas inget returschema (egenskapen är null). För metoder som returnerar Task<TResult> eller ValueTask<TResult>härleds schemat från den oöppnade resultattypen. Generering av returscheman kan undantas via ExcludeResultSchema, och dess generering styrs av options's JsonSchemaCreateOptions.

Gäller för

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

Källa:
AIFunctionFactory.cs

Skapar en AIFunction instans för en metod som anges via en för en MethodInfo instansmetod och en Func<T,TResult> för att konstruera en instans av mottagarobjektet varje gång som AIFunction anropas.

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

Parametrar

method
MethodInfo

Instansmetoden som ska representeras via den skapade AIFunction.

createInstanceFunc
Func<AIFunctionArguments,Object>

Återanrop som används för varje funktionsanrop för att skapa en instans av den typ som instansmetoden method ska anropas på. Om den returnerade instansen är IAsyncDisposable eller IDisposablekommer den att tas bort när method dess anrop har slutförts.

options
AIFunctionFactoryOptions

Metadata som ska användas för att åsidosätta standardvärden som härleds från method.

Returer

Den skapade AIFunction för att methodanropa .

Undantag

createInstanceFunc är null.

method innehåller en parameter utan parameternamn.

En parameter till method eller dess returtyp kan inte serialiseras.

Kommentarer

Returvärden serialiseras till att JsonElement använda options's SerializerOptions. Argument som inte redan är av den förväntade typen konverteras till den förväntade typen via JSON och använder options's SerializerOptions. Om argumentet är , JsonElementJsonDocument, eller JsonNode, deserialiseras det direkt. Om argumentet är något annat okänt avrundas det genom JSON, serialiserar objektet som JSON och deserialiserar det sedan till den förväntade typen.

Som standard kommer alla parametrar som method ska hämtas från AIFunctionArgumentsordlistan med nyckel/värde-par och representeras i JSON-schemat för funktionen, som exponeras i de returnerade AIFunction.JsonSchema Det finns några undantag till detta:

Alla andra parametertyper är som standard bundna från ordlistan AIFunctionArguments som skickas till InvokeAsync(AIFunctionArguments, CancellationToken) och ingår i det genererade JSON-schemat. Detta kan åsidosättas av den ConfigureParameterBinding som tillhandahålls via parametern options . För varje parameter är ombudet aktiverat för att välja om parametern ska ingå i det genererade schemat och hur dess värde ska bindas, inklusive hantering av valfrihet (som standard resulterar obligatoriska parametrar som inte ingår i AIFunctionArguments ordlistan i ett undantag som genereras). Löst typad ytterligare kontextinformation kan skickas till InvokeAsync(AIFunctionArguments, CancellationToken) via AIFunctionArgumentsordlistan. Standardbindningen ignorerar den här samlingen, men en anpassad bindning som tillhandahålls Context via ConfigureParameterBinding kan välja källargument från dessa data.

Standardmarhering av parametrar från AIFunctionArguments ordlistan tillåter att värden skickas direkt till methodanropet om objektet redan är av en kompatibel typ. Annars, om argumentet är en JsonElement, , eller JsonDocument, deserialiseras det till parametertypen, använder JsonNode om det tillhandahålls eller annars använder SerializerOptionsDefaultOptions. Om argumentet är något annat avrundas det genom JSON, serialiserar objektet som JSON och deserialiserar det sedan till den förväntade typen.

I allmänhet tillhandahålls de data som tillhandahålls via en AIFunctionArgumentsordlista från en AI-tjänst och bör betraktas som ovaliderade och obetrodda. För att tillhandahålla verifierade och betrodda data till anropet av methodkan den instans som skapas för varje anrop innehålla dessa data i den, så att den sedan är tillgänglig som method instansdata. En IServiceProvider parameter kan också användas för att lösa tjänster från en container för beroendeinmatning.

Som standard serialiseras returvärden till att JsonElement använda options's om det tillhandahålls SerializerOptions , eller så använder du DefaultOptions. Returnera värden vars deklarerade typ är AIContent, en härledd typ av AIContenteller någon typ som kan tilldelas från IEnumerable<T> returneras dock direkt utan serialisering. Hantering av returvärden kan åsidosättas via MarshalResult.

Förutom parameterschemat härleds även ett JSON-schema från metodens returtyp och exponeras via de returnerade AIFunction.ReturnJsonSchema För metoder som returnerar Void, Taskeller ValueTask, skapas inget returschema (egenskapen är null). För metoder som returnerar Task<TResult> eller ValueTask<TResult>härleds schemat från den oöppnade resultattypen. Generering av returscheman kan undantas via ExcludeResultSchema, och dess generering styrs av options's JsonSchemaCreateOptions.

Gäller för

Create(MethodInfo, Object, AIFunctionFactoryOptions)

Källa:
AIFunctionFactory.cs

Skapar en AIFunction instans för en metod som anges via en MethodInfo instans och ett valfritt målobjekt om metoden är en instansmetod.

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

Parametrar

method
MethodInfo

Den metod som ska representeras via den skapade AIFunction.

target
Object

Målobjektet för method om det representerar en instansmetod. Detta bör vara null om och endast om method är en statisk metod.

options
AIFunctionFactoryOptions

Metadata som ska användas för att åsidosätta standardvärden som härleds från method.

Returer

Den skapade AIFunction för att methodanropa .

Undantag

method representerar en instansmetod men target är null.

method innehåller en parameter utan parameternamn.

En parameter till method eller dess returtyp kan inte serialiseras.

Kommentarer

Som standard kommer alla parametrar som method ska hämtas från AIFunctionArgumentsordlistan med nyckel/värde-par och representeras i JSON-schemat för funktionen, som exponeras i de returnerade AIFunction.JsonSchema Det finns några undantag till detta:

Alla andra parametertyper är som standard bundna från ordlistan AIFunctionArguments som skickas till InvokeAsync(AIFunctionArguments, CancellationToken) och ingår i det genererade JSON-schemat. Detta kan åsidosättas av den ConfigureParameterBinding som tillhandahålls via parametern options . För varje parameter är ombudet aktiverat för att välja om parametern ska ingå i det genererade schemat och hur dess värde ska bindas, inklusive hantering av valfrihet (som standard resulterar obligatoriska parametrar som inte ingår i AIFunctionArguments ordlistan i ett undantag som genereras). Löst inskriven ytterligare kontextinformation kan skickas InvokeAsync(AIFunctionArguments, CancellationToken) till AIFunctionArguments via Contextordlistan. Standardbindningen ignorerar den här samlingen, men en anpassad bindning som tillhandahålls via ConfigureParameterBinding kan välja källargument från dessa data.

Standardmarhering av parametrar från AIFunctionArguments ordlistan tillåter att värden skickas direkt till methodanropet om objektet redan är av en kompatibel typ. Annars, om argumentet är en JsonElement, , eller JsonDocument, deserialiseras det till parametertypen, använder JsonNode om det tillhandahålls eller annars använder SerializerOptionsDefaultOptions. Om argumentet är något annat avrundas det genom JSON, serialiserar objektet som JSON och deserialiserar det sedan till den förväntade typen.

I allmänhet tillhandahålls de data som tillhandahålls via en AIFunctionArgumentsordlista från en AI-tjänst och bör betraktas som ovaliderade och obetrodda. Om du vill tillhandahålla verifierade och betrodda data till anropet av methodkan du överväga att method peka på en instansmetod på en instans som har konfigurerats för att lagra rätt tillstånd. En IServiceProvider parameter kan också användas för att lösa tjänster från en container för beroendeinmatning.

Som standard serialiseras returvärden till att JsonElement använda options's om det tillhandahålls SerializerOptions , eller så använder du DefaultOptions. Returnera värden vars deklarerade typ är AIContent, en härledd typ av AIContenteller någon typ som kan tilldelas från IEnumerable<T> serialiseras dock inte och returneras i stället direkt. Hantering av returvärden kan åsidosättas via MarshalResult.

Förutom parameterschemat härleds även ett JSON-schema från metodens returtyp och exponeras via de returnerade AIFunction.ReturnJsonSchema För metoder som returnerar Void, Taskeller ValueTask, skapas inget returschema (egenskapen är null). För metoder som returnerar Task<TResult> eller ValueTask<TResult>härleds schemat från den oöppnade resultattypen. Generering av returscheman kan undantas via ExcludeResultSchema, och dess generering styrs av options's JsonSchemaCreateOptions.

Gäller för

Create(Delegate, String, String, JsonSerializerOptions)

Källa:
AIFunctionFactory.cs

Skapar en AIFunction instans för en metod som anges via ett ombud.

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

Parametrar

method
Delegate

Den metod som ska representeras via den skapade AIFunction.

name
String

Namnet som ska användas för AIFunction. Om null, kommer namnet att härledas från någon AIFunctionNameAttribute på , sedan från någon DisplayNameAttributemethod, om tillgängligt, eller annars från namnet på methodmethod.

description
String

Beskrivningen som ska användas för AIFunction. Om nullkommer en beskrivning att härledas från någon DescriptionAttributemethod, om det är tillgängligt.

serializerOptions
JsonSerializerOptions

Används JsonSerializerOptions för att konvertera funktionsparametrar och eventuella returvärden.

Returer

Den skapade AIFunction för att methodanropa .

Undantag

method är null.

En parameter till method är inte serialiserbar.

Kommentarer

Alla parametrar som method ska hämtas från AIFunctionArgumentsordlistan för nyckel/värde-par och representeras i JSON-schemat för funktionen, som exponeras i de returnerade AIFunction.JsonSchema Det finns några undantag till detta:

Alla andra parametertyper är bundna från ordlistan AIFunctionArguments som skickas till InvokeAsync(AIFunctionArguments, CancellationToken) och ingår i det genererade JSON-schemat.

Om du konverterar parametrar från AIFunctionArguments ordlistan kan värden skickas direkt till methodanropet om objektet redan är av en kompatibel typ. Annars, om argumentet är , JsonElementJsonDocument, eller JsonNode, deserialiseras det till parametertypen, med hjälp serializerOptions av om det tillhandahålls, eller annars DefaultOptions. Om argumentet är något annat avrundas det genom JSON, serialiserar objektet som JSON och deserialiserar det sedan till den förväntade typen.

I allmänhet tillhandahålls de data som tillhandahålls via en AIFunctionArgumentsordlista från en AI-tjänst och bör betraktas som ovaliderade och obetrodda. Om du vill tillhandahålla verifierade och betrodda data till anropet av methodkan du överväga att method peka på en instansmetod på en instans som har konfigurerats för att lagra rätt tillstånd. En IServiceProvider parameter kan också användas för att lösa tjänster från en container för beroendeinmatning.

Returvärden serialiseras till att JsonElement använda serializerOptions om de tillhandahålls, eller så använder du DefaultOptions. Men returvärden vars deklarerade typ är AIContent, en härledd typ av AIContenteller någon typ som kan tilldelas från IEnumerable<T> är inte serialiserade. De returneras as-is för att underlätta specialiserad hantering.

Ett JSON-schema härleds också från metodens returtyp och exponeras via ReturnJsonSchema. För metoder som returnerar Void, Taskeller ValueTask, skapas inget returschema. För metoder som returnerar Task<TResult> eller ValueTask<TResult>härleds schemat från den oöppnade resultattypen.

Gäller för

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

Källa:
AIFunctionFactory.cs

Skapar en AIFunction instans för en metod som anges via en MethodInfo instans och ett valfritt målobjekt om metoden är en instansmetod.

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

Parametrar

method
MethodInfo

Den metod som ska representeras via den skapade AIFunction.

target
Object

Målobjektet för method om det representerar en instansmetod. Detta bör vara null om och endast om method är en statisk metod.

name
String

Namnet som ska användas för AIFunction. Om null, kommer namnet att härledas från någon AIFunctionNameAttribute på , sedan från någon DisplayNameAttributemethod, om tillgängligt, eller annars från namnet på methodmethod.

description
String

Beskrivningen som ska användas för AIFunction. Om nullkommer en beskrivning att härledas från någon DescriptionAttributemethod, om det är tillgängligt.

serializerOptions
JsonSerializerOptions

Används JsonSerializerOptions för att konvertera funktionsparametrar och returvärde.

Returer

Den skapade AIFunction för att methodanropa .

Undantag

method representerar en instansmetod men target är null.

method innehåller en parameter utan parameternamn.

En parameter till method eller dess returtyp kan inte serialiseras.

Kommentarer

Alla parametrar som method ska hämtas från AIFunctionArgumentsordlistan för nyckel/värde-par och representeras i JSON-schemat för funktionen, som exponeras i de returnerade AIFunction.JsonSchema Det finns några undantag till detta:

Alla andra parametertyper är bundna från ordlistan AIFunctionArguments som skickas till InvokeAsync(AIFunctionArguments, CancellationToken) och ingår i det genererade JSON-schemat.

Om du konverterar parametrar från AIFunctionArguments ordlistan kan värden skickas direkt till methodanropet om objektet redan är av en kompatibel typ. Annars, om argumentet är , JsonElementJsonDocument, eller JsonNode, deserialiseras det till parametertypen, med hjälp serializerOptions av om det tillhandahålls, eller annars DefaultOptions. Om argumentet är något annat avrundas det genom JSON, serialiserar objektet som JSON och deserialiserar det sedan till den förväntade typen.

I allmänhet tillhandahålls de data som tillhandahålls via en AIFunctionArgumentsordlista från en AI-tjänst och bör betraktas som ovaliderade och obetrodda. Om du vill tillhandahålla verifierade och betrodda data till anropet av methodkan du överväga att method peka på en instansmetod på en instans som har konfigurerats för att lagra rätt tillstånd. En IServiceProvider parameter kan också användas för att lösa tjänster från en container för beroendeinmatning.

Returvärden serialiseras till att JsonElement använda serializerOptions om de tillhandahålls, eller så använder du DefaultOptions. Returnera värden vars deklarerade typ är AIContent, en härledd typ av AIContenteller någon typ som kan tilldelas från IEnumerable<T> returneras dock utan serialisering för att aktivera specialiserad hantering.

Ett JSON-schema härleds också från metodens returtyp och exponeras via ReturnJsonSchema. För metoder som returnerar Void, Taskeller ValueTask, skapas inget returschema. För metoder som returnerar Task<TResult> eller ValueTask<TResult>härleds schemat från den oöppnade resultattypen.

Gäller för