AIFunctionFactory.Create Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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:
- CancellationToken parametrar binds automatiskt till den CancellationToken som skickas till anropet via InvokeAsync(AIFunctionArguments, CancellationToken)parametern 's CancellationToken . Parametern ingår inte i det genererade JSON-schemat. Det går inte att åsidosätta parametrarnas CancellationToken beteende.
- Som standard IServiceProvider är parametrar bundna från Services egenskapen och ingår inte i JSON-schemat. Om parametern är valfri, så att ett standardvärde anges, Services tillåts vara
null. Annars Services måste den vara icke-null, annars misslyckas anropet med ett undantag på grund av parameterns nödvändiga karaktär. Hanteringen av IServiceProvider parametrar kan åsidosättas via ConfigureParameterBinding. - Som standard AIFunctionArguments är parametrarna direkt bundna till AIFunctionArguments instansen som skickas till InvokeAsync(AIFunctionArguments, CancellationToken) och ingår inte i JSON-schemat. Om den AIFunctionArguments instans som skickas till InvokeAsync(AIFunctionArguments, CancellationToken) är
nullAIFunction , tillverkar implementeringen en tom instans, så att parametrar av typen AIFunctionArguments alltid kan uppfyllas, oavsett om det är valfritt eller inte. Hanteringen av AIFunctionArguments parametrar kan åsidosättas via ConfigureParameterBinding.
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:
- CancellationToken parametrar binds automatiskt till den CancellationToken som skickas till anropet via InvokeAsync(AIFunctionArguments, CancellationToken)parametern 's CancellationToken . Parametern ingår inte i det genererade JSON-schemat. Det går inte att åsidosätta parametrarnas CancellationToken beteende.
- Som standard IServiceProvider är parametrar bundna från Services egenskapen och ingår inte i JSON-schemat. Om parametern är valfri, så att ett standardvärde anges, Services tillåts vara
null. Annars Services måste den vara icke-null, annars misslyckas anropet med ett undantag på grund av parameterns nödvändiga karaktär. Hanteringen av IServiceProvider parametrar kan åsidosättas via ConfigureParameterBinding. - Som standard AIFunctionArguments är parametrarna direkt bundna till AIFunctionArguments instansen som skickas till InvokeAsync(AIFunctionArguments, CancellationToken) och ingår inte i JSON-schemat. Om den AIFunctionArguments instans som skickas till InvokeAsync(AIFunctionArguments, CancellationToken) är
nullAIFunction , tillverkar implementeringen en tom instans, så att parametrar av typen AIFunctionArguments alltid kan uppfyllas, oavsett om det är valfritt eller inte. Hanteringen av AIFunctionArguments parametrar kan åsidosättas via ConfigureParameterBinding.
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:
- CancellationToken parametrar binds automatiskt till den CancellationToken som skickas till anropet via InvokeAsync(AIFunctionArguments, CancellationToken)parametern 's CancellationToken . Parametern ingår inte i det genererade JSON-schemat. Det går inte att åsidosätta parametrarnas CancellationToken beteende.
- Som standard IServiceProvider är parametrar bundna från Services egenskapen och ingår inte i JSON-schemat. Om parametern är valfri, så att ett standardvärde anges, Services tillåts vara
null. Annars Services måste den vara icke-null, annars misslyckas anropet med ett undantag på grund av parameterns nödvändiga karaktär. Hanteringen av IServiceProvider parametrar kan åsidosättas via ConfigureParameterBinding. - Som standard AIFunctionArguments är parametrarna direkt bundna till AIFunctionArguments instansen som skickas till InvokeAsync(AIFunctionArguments, CancellationToken) och ingår inte i JSON-schemat. Om den AIFunctionArguments instans som skickas till InvokeAsync(AIFunctionArguments, CancellationToken) är
nullAIFunction , tillverkar implementeringen en tom instans, så att parametrar av typen AIFunctionArguments alltid kan uppfyllas, oavsett om det är valfritt eller inte. Hanteringen av AIFunctionArguments parametrar kan åsidosättas via ConfigureParameterBinding.
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 DisplayNameAttribute på method, 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 DescriptionAttribute på method, 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:
- CancellationToken parametrar binds automatiskt till den CancellationToken som skickas till anropet via InvokeAsync(AIFunctionArguments, CancellationToken)parametern 's CancellationToken . Parametern ingår inte i det genererade JSON-schemat.
- Som standard IServiceProvider är parametrar bundna från Services egenskapen och ingår inte i JSON-schemat. Om parametern är valfri, så att ett standardvärde anges, Services tillåts vara
null. Annars Services måste den vara icke-null, annars misslyckas anropet med ett undantag på grund av parameterns nödvändiga karaktär. - Som standard AIFunctionArguments är parametrarna direkt bundna till AIFunctionArguments instansen som skickas till InvokeAsync(AIFunctionArguments, CancellationToken) och ingår inte i JSON-schemat. Om den AIFunctionArguments instans som skickas till InvokeAsync(AIFunctionArguments, CancellationToken) är
nullAIFunction , tillverkar implementeringen en tom instans, så att parametrar av typen AIFunctionArguments alltid kan uppfyllas, oavsett om det är valfritt eller inte.
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 DisplayNameAttribute på method, 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 DescriptionAttribute på method, 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:
- CancellationToken parametrar binds automatiskt till den CancellationToken som skickas till anropet via InvokeAsync(AIFunctionArguments, CancellationToken)parametern 's CancellationToken . Parametern ingår inte i det genererade JSON-schemat.
- Som standard IServiceProvider är parametrar bundna från Services egenskapen och ingår inte i JSON-schemat. Om parametern är valfri, så att ett standardvärde anges, Services tillåts vara
null. Annars Services måste den vara icke-null, annars misslyckas anropet med ett undantag på grund av parameterns nödvändiga karaktär. - Som standard AIFunctionArguments är parametrarna direkt bundna till AIFunctionArguments instansen som skickas till InvokeAsync(AIFunctionArguments, CancellationToken) och ingår inte i JSON-schemat. Om den AIFunctionArguments instans som skickas till InvokeAsync(AIFunctionArguments, CancellationToken) är
nullAIFunction , tillverkar implementeringen en tom instans, så att parametrar av typen AIFunctionArguments alltid kan uppfyllas, oavsett om det är valfritt eller inte.
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.