Freigeben über


AIFunctionFactory.Create Methode

Definition

Überlädt

Name Beschreibung
Create(Delegate, AIFunctionFactoryOptions)

Erstellt eine AIFunction Instanz für eine Methode, die über einen Delegaten angegeben wird.

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

Erstellt eine AIFunction Instanz für eine Methode, die über eine MethodInfo Instanzmethode angegeben wird, und eine Func<T,TResult> zum Erstellen einer Instanz des Empfängerobjekts jedes Mal, wenn die AIFunction Methode aufgerufen wird.

Create(MethodInfo, Object, AIFunctionFactoryOptions)

Erstellt eine AIFunction Instanz für eine Methode, die über eine MethodInfo Instanz und ein optionales Zielobjekt angegeben wird, wenn es sich bei der Methode um eine Instanzmethode handelt.

Create(Delegate, String, String, JsonSerializerOptions)

Erstellt eine AIFunction Instanz für eine Methode, die über einen Delegaten angegeben wird.

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

Erstellt eine AIFunction Instanz für eine Methode, die über eine MethodInfo Instanz und ein optionales Zielobjekt angegeben wird, wenn es sich bei der Methode um eine Instanzmethode handelt.

Create(Delegate, AIFunctionFactoryOptions)

Quelle:
AIFunctionFactory.cs

Erstellt eine AIFunction Instanz für eine Methode, die über einen Delegaten angegeben wird.

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

Parameter

method
Delegate

Die Methode, die über die erstellte AIFunctionDargestellt werden soll.

options
AIFunctionFactoryOptions

Metadaten, die verwendet werden sollen, um Standardwerte außer Kraft zu setzen, die von method.

Gibt zurück

Das erstellt AIFunction für das Aufrufen method.

Ausnahmen

method ist null.

Ein Parameter kann method nicht serialisiert werden.

Hinweise

Standardmäßig werden alle Parameter method , die aus dem AIFunctionArgumentsWörterbuch von Schlüssel-Wert-Paaren stammen und im JSON-Schema für die Funktion dargestellt werden, wie in den zurückgegebenen AIFunction's JsonSchemaverfügbar gemacht. Es gibt einige Ausnahmen:

Alle anderen Parametertypen sind standardmäßig an das AIFunctionArguments übergebene InvokeAsync(AIFunctionArguments, CancellationToken) Wörterbuch gebunden und sind im generierten JSON-Schema enthalten. Dies kann durch options den ConfigureParameterBinding bereitgestellten Parameter überschrieben werden. Für jeden Parameter ist der Delegat aktiviert, auszuwählen, ob der Parameter in das generierte Schema aufgenommen werden soll und wie der Wert gebunden werden soll, einschließlich der Verarbeitung der Optionalität (standardmäßig werden erforderliche Parameter, die AIFunctionArguments nicht im Wörterbuch enthalten sind, zu einer Ausnahme ausgelöst). Lose typierte zusätzliche Kontextinformationen können über das AIFunctionArgumentsWörterbuch Context übergeben InvokeAsync(AIFunctionArguments, CancellationToken) werden. Die Standardbindung ignoriert diese Auflistung, aber eine benutzerdefinierte Bindung, die über ConfigureParameterBinding diese Daten bereitgestellt wird, kann auswählen, dass Argumente aus diesen Daten stammen.

Durch das Standardmäßige Marshalling von Parametern aus dem AIFunctionArguments Wörterbuch können Werte direkt an den methodAufruf des Objekts übergeben werden, wenn das Objekt bereits einen kompatiblen Typ aufweist. Andernfalls ist das Argument ein JsonElement, JsonDocument, oder JsonNode, wird es in den Parametertyp deserialisiert, wobei SerializerOptions verwendet wird, wenn angegeben oder anderweitig verwendet DefaultOptions. Wenn das Argument etwas anderes ist, wird es durch JSON gerundet, das Objekt als JSON serialisiert und dann auf den erwarteten Typ deserialisieren.

Im Allgemeinen werden die über ein AIFunctionArgumentsWörterbuch bereitgestellten Daten von einem KI-Dienst bereitgestellt und sollten als nichtvalidiert und nicht vertrauenswürdig betrachtet werden. Um validierte und vertrauenswürdige Daten für den Aufruf methodbereitzustellen, sollten Sie erwägen method , auf eine Instanzmethode für eine Instanz zu verweisen, die für den geeigneten Zustand konfiguriert ist. Ein IServiceProvider Parameter kann auch verwendet werden, um Dienste aus einem Abhängigkeitseinfügungscontainer aufzulösen.

Standardmäßig werden Rückgabewerte serialisiert, um JsonElementoptions"s SerializerOptions sofern angegeben" oder eine andere Verwendung zu verwenden DefaultOptions. Rückgabewerte, deren deklarierter Typ ist, ein abgeleiteter Typ AIContentAIContentoder ein beliebiger Typ, der IEnumerable<T> zugewiesen werden kann (z. B. , List<AIContent>), sind jedoch spezialgeschrieben und nicht serialisiert: Die erstellte Funktion gibt die ursprünglichen Instanzen direkt zurück, um Aufrufer (z. B. AIContent[]ein IChatClient) zum Ausführen von Typtests und zur Implementierung spezieller Behandlung zu ermöglichen. Wenn MarshalResult angegeben, steuert diese Stellvertretung stattdessen das Verhalten.

Zusätzlich zum Parameterschema wird ein JSON-Schema auch vom Rückgabetyp der Methode abgeleitet und über die zurückgegebenen AIFunction's ReturnJsonSchemaverfügbar gemacht. Für Methoden, die Voidein Rückgabeschema zurückgeben , Taskoder ValueTask, wird kein Rückgabeschema erzeugt (die Eigenschaft ist null). Bei Methoden, die Task<TResult> zurückgegeben werden oder ValueTask<TResult>, wird das Schema vom ergebnistyp "unwrapped" abgeleitet. Die Rückgabeschemagenerierung kann über ExcludeResultSchema"s" ausgeschlossen werden, und die Generierung wird von options's JsonSchemaCreateOptionsgesteuert.

Gilt für:

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

Quelle:
AIFunctionFactory.cs

Erstellt eine AIFunction Instanz für eine Methode, die über eine MethodInfo Instanzmethode angegeben wird, und eine Func<T,TResult> zum Erstellen einer Instanz des Empfängerobjekts jedes Mal, wenn die AIFunction Methode aufgerufen wird.

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

Parameter

method
MethodInfo

Die Instanzmethode, die über die erstellte AIFunctionDargestellt werden soll.

createInstanceFunc
Func<AIFunctionArguments,Object>

Rückruf, der für jeden Funktionsaufruf verwendet wird, um eine Instanz des Typs zu erstellen, für den die Instanzmethode method aufgerufen wird. Wenn die zurückgegebene Instanz vorhanden ist IAsyncDisposable oder IDisposable, wird sie nach method Abschluss des Aufrufs verworfen.

options
AIFunctionFactoryOptions

Metadaten, die verwendet werden sollen, um Standardwerte außer Kraft zu setzen, die von method.

Gibt zurück

Das erstellt AIFunction für das Aufrufen method.

Ausnahmen

createInstanceFunc ist null.

method enthält einen Parameter ohne Parameternamen.

Ein Parameter an method oder sein Rückgabetyp kann nicht serialisiert werden.

Hinweise

Rückgabewerte werden mithilfe JsonElement von options's SerializerOptionsserialisiert. Argumente, die noch nicht vom erwarteten Typ sind, werden über JSON an den erwarteten Typ gemarstet und verwenden options's SerializerOptions. Wenn es sich bei dem Argument um ein JsonElement, JsonDocumentoder JsonNodeum ein deserialisiertes Argument handelt, wird es direkt deserialisiert. Wenn das Argument etwas anderes unbekannt ist, wird es durch JSON gerundet, das Objekt als JSON serialisiert und dann auf den erwarteten Typ deserialisieren.

Standardmäßig werden alle Parameter method , die aus dem AIFunctionArgumentsWörterbuch von Schlüssel-Wert-Paaren stammen und im JSON-Schema für die Funktion dargestellt werden, wie in den zurückgegebenen AIFunction's JsonSchemaverfügbar gemacht. Es gibt einige Ausnahmen:

Alle anderen Parametertypen sind standardmäßig an das AIFunctionArguments übergebene InvokeAsync(AIFunctionArguments, CancellationToken) Wörterbuch gebunden und sind im generierten JSON-Schema enthalten. Dies kann durch options den ConfigureParameterBinding bereitgestellten Parameter überschrieben werden. Für jeden Parameter ist der Delegat aktiviert, auszuwählen, ob der Parameter in das generierte Schema aufgenommen werden soll und wie der Wert gebunden werden soll, einschließlich der Verarbeitung der Optionalität (standardmäßig werden erforderliche Parameter, die AIFunctionArguments nicht im Wörterbuch enthalten sind, zu einer Ausnahme ausgelöst). Lose typierte zusätzliche Kontextinformationen können über das AIFunctionArgumentsWörterbuch Context übergeben InvokeAsync(AIFunctionArguments, CancellationToken) werden. Die Standardbindung ignoriert diese Auflistung, aber eine benutzerdefinierte Bindung, die über ConfigureParameterBinding diese Daten bereitgestellt wird, kann auswählen, dass Argumente aus diesen Daten stammen.

Durch das Standardmäßige Marshalling von Parametern aus dem AIFunctionArguments Wörterbuch können Werte direkt an den methodAufruf des Objekts übergeben werden, wenn das Objekt bereits einen kompatiblen Typ aufweist. Andernfalls ist das Argument ein JsonElement, JsonDocument, oder JsonNode, wird es in den Parametertyp deserialisiert, wobei SerializerOptions verwendet wird, wenn angegeben oder anderweitig verwendet DefaultOptions. Wenn das Argument etwas anderes ist, wird es durch JSON gerundet, das Objekt als JSON serialisiert und dann auf den erwarteten Typ deserialisieren.

Im Allgemeinen werden die über ein AIFunctionArgumentsWörterbuch bereitgestellten Daten von einem KI-Dienst bereitgestellt und sollten als nichtvalidiert und nicht vertrauenswürdig betrachtet werden. Um validierte und vertrauenswürdige Daten für den Aufruf methodbereitzustellen, kann die für jeden Aufruf erstellte Instanz diese Daten enthalten, sodass sie dann als Instanzdaten verfügbar method ist. Ein IServiceProvider Parameter kann auch verwendet werden, um Dienste aus einem Abhängigkeitseinfügungscontainer aufzulösen.

Standardmäßig werden Rückgabewerte serialisiert, um JsonElementoptions"s SerializerOptions sofern angegeben" oder eine andere Verwendung zu verwenden DefaultOptions. Rückgabewerte, deren deklarierter Typ AIContent, ein abgeleiteter Typ AIContentoder ein beliebiger Typ, der IEnumerable<T> zugewiesen werden kann, werden jedoch direkt ohne Serialisierung zurückgegeben. Die Behandlung von Rückgabewerten kann überschrieben werden.MarshalResult

Zusätzlich zum Parameterschema wird ein JSON-Schema auch vom Rückgabetyp der Methode abgeleitet und über die zurückgegebenen AIFunction's ReturnJsonSchemaverfügbar gemacht. Für Methoden, die Voidein Rückgabeschema zurückgeben , Taskoder ValueTask, wird kein Rückgabeschema erzeugt (die Eigenschaft ist null). Bei Methoden, die Task<TResult> zurückgegeben werden oder ValueTask<TResult>, wird das Schema vom ergebnistyp "unwrapped" abgeleitet. Die Rückgabeschemagenerierung kann über ExcludeResultSchema"s" ausgeschlossen werden, und die Generierung wird von options's JsonSchemaCreateOptionsgesteuert.

Gilt für:

Create(MethodInfo, Object, AIFunctionFactoryOptions)

Quelle:
AIFunctionFactory.cs

Erstellt eine AIFunction Instanz für eine Methode, die über eine MethodInfo Instanz und ein optionales Zielobjekt angegeben wird, wenn es sich bei der Methode um eine Instanzmethode handelt.

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

Parameter

method
MethodInfo

Die Methode, die über die erstellte AIFunctionDargestellt werden soll.

target
Object

Das Zielobjekt für den method Fall, dass es eine Instanzmethode darstellt. Dies sollte nur dann erfolgen null , wenn method es sich um eine statische Methode handelt.

options
AIFunctionFactoryOptions

Metadaten, die verwendet werden sollen, um Standardwerte außer Kraft zu setzen, die von method.

Gibt zurück

Das erstellt AIFunction für das Aufrufen method.

Ausnahmen

method stellt eine Instanzmethode dar, ist jedoch target NULL.

method enthält einen Parameter ohne Parameternamen.

Ein Parameter an method oder sein Rückgabetyp kann nicht serialisiert werden.

Hinweise

Standardmäßig werden alle Parameter method , die aus dem AIFunctionArgumentsWörterbuch von Schlüssel-Wert-Paaren stammen und im JSON-Schema für die Funktion dargestellt werden, wie in den zurückgegebenen AIFunction's JsonSchemaverfügbar gemacht. Es gibt einige Ausnahmen:

Alle anderen Parametertypen sind standardmäßig an das AIFunctionArguments übergebene InvokeAsync(AIFunctionArguments, CancellationToken) Wörterbuch gebunden und sind im generierten JSON-Schema enthalten. Dies kann durch options den ConfigureParameterBinding bereitgestellten Parameter überschrieben werden. Für jeden Parameter ist der Delegat aktiviert, auszuwählen, ob der Parameter in das generierte Schema aufgenommen werden soll und wie der Wert gebunden werden soll, einschließlich der Verarbeitung der Optionalität (standardmäßig werden erforderliche Parameter, die AIFunctionArguments nicht im Wörterbuch enthalten sind, zu einer Ausnahme ausgelöst). Lose eingegebene zusätzliche Kontextinformationen können über das AIFunctionArgumentsWörterbuch Context übergeben InvokeAsync(AIFunctionArguments, CancellationToken) werden. Die Standardbindung ignoriert diese Auflistung, aber eine benutzerdefinierte Bindung, die über ConfigureParameterBinding diese Daten bereitgestellt wird, kann auswählen, dass Argumente aus diesen Daten stammen.

Durch das Standardmäßige Marshalling von Parametern aus dem AIFunctionArguments Wörterbuch können Werte direkt an den methodAufruf des Objekts übergeben werden, wenn das Objekt bereits einen kompatiblen Typ aufweist. Andernfalls ist das Argument ein JsonElement, JsonDocument, oder JsonNode, wird es in den Parametertyp deserialisiert, wobei SerializerOptions verwendet wird, wenn angegeben oder anderweitig verwendet DefaultOptions. Wenn das Argument etwas anderes ist, wird es durch JSON gerundet, das Objekt als JSON serialisiert und dann auf den erwarteten Typ deserialisieren.

Im Allgemeinen werden die über ein AIFunctionArgumentsWörterbuch bereitgestellten Daten von einem KI-Dienst bereitgestellt und sollten als nichtvalidiert und nicht vertrauenswürdig betrachtet werden. Um validierte und vertrauenswürdige Daten für den Aufruf methodbereitzustellen, sollten Sie erwägen method , auf eine Instanzmethode für eine Instanz zu verweisen, die für den geeigneten Zustand konfiguriert ist. Ein IServiceProvider Parameter kann auch verwendet werden, um Dienste aus einem Abhängigkeitseinfügungscontainer aufzulösen.

Standardmäßig werden Rückgabewerte serialisiert, um JsonElementoptions"s SerializerOptions sofern angegeben" oder eine andere Verwendung zu verwenden DefaultOptions. Rückgabewerte, deren deklarierter Typ AIContentist , ein abgeleiteter Typ AIContentoder ein beliebiger Typ, der IEnumerable<T> zugewiesen werden kann, werden jedoch nicht serialisiert und stattdessen direkt zurückgegeben. Die Behandlung von Rückgabewerten kann überschrieben werden.MarshalResult

Zusätzlich zum Parameterschema wird ein JSON-Schema auch vom Rückgabetyp der Methode abgeleitet und über die zurückgegebenen AIFunction's ReturnJsonSchemaverfügbar gemacht. Für Methoden, die Voidein Rückgabeschema zurückgeben , Taskoder ValueTask, wird kein Rückgabeschema erzeugt (die Eigenschaft ist null). Bei Methoden, die Task<TResult> zurückgegeben werden oder ValueTask<TResult>, wird das Schema vom ergebnistyp "unwrapped" abgeleitet. Die Rückgabeschemagenerierung kann über ExcludeResultSchema"s" ausgeschlossen werden, und die Generierung wird von options's JsonSchemaCreateOptionsgesteuert.

Gilt für:

Create(Delegate, String, String, JsonSerializerOptions)

Quelle:
AIFunctionFactory.cs

Erstellt eine AIFunction Instanz für eine Methode, die über einen Delegaten angegeben wird.

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

Parameter

method
Delegate

Die Methode, die über die erstellte AIFunctionDargestellt werden soll.

name
String

Der Name, der für die AIFunction. Wenn null, wird der Name von einem DisplayNameAttributemethodvon , falls verfügbar, oder anderen vom Namen von method.

description
String

Die Beschreibung, die für die AIFunction. Wenn null, wird eine Beschreibung von einem von , DescriptionAttributemethodfalls verfügbar, abgeleitet.

serializerOptions
JsonSerializerOptions

Die JsonSerializerOptions zum Marshallen von Funktionsparametern und allen Rückgabewerten verwendeten Werte.

Gibt zurück

Das erstellt AIFunction für das Aufrufen method.

Ausnahmen

method ist null.

Ein Parameter kann method nicht serialisiert werden.

Hinweise

Alle Parameter, method die aus dem AIFunctionArgumentsWörterbuch von Schlüssel-Wert-Paaren stammen und im JSON-Schema für die Funktion dargestellt werden, wie in den zurückgegebenen AIFunction's JsonSchemaverfügbar gemacht. Es gibt einige Ausnahmen:

Alle anderen Parametertypen werden vom AIFunctionArguments übergebenen InvokeAsync(AIFunctionArguments, CancellationToken) Wörterbuch gebunden und sind im generierten JSON-Schema enthalten.

Durch das Marshalling von Parametern aus dem AIFunctionArguments Wörterbuch können Werte direkt an den methodAufruf des Objekts übergeben werden, wenn das Objekt bereits einen kompatiblen Typ aufweist. Andernfalls, wenn das Argument ein JsonElement, , oder JsonNode, es wird in den Parametertyp deserialisiert, verwendetserializerOptions, wenn angegeben, oder sonst DefaultOptionsJsonDocument. Wenn das Argument etwas anderes ist, wird es durch JSON gerundet, das Objekt als JSON serialisiert und dann auf den erwarteten Typ deserialisieren.

Im Allgemeinen werden die über ein AIFunctionArgumentsWörterbuch bereitgestellten Daten von einem KI-Dienst bereitgestellt und sollten als nichtvalidiert und nicht vertrauenswürdig betrachtet werden. Um validierte und vertrauenswürdige Daten für den Aufruf methodbereitzustellen, sollten Sie erwägen method , auf eine Instanzmethode für eine Instanz zu verweisen, die für den geeigneten Zustand konfiguriert ist. Ein IServiceProvider Parameter kann auch verwendet werden, um Dienste aus einem Abhängigkeitseinfügungscontainer aufzulösen.

Rückgabewerte werden serialisiert, um sie zu JsonElement verwenden serializerOptions , sofern angegeben, oder mit anderen Verwenden DefaultOptions. Rückgabewerte, deren deklarierter Typ , ein abgeleiteter Typ AIContentAIContentoder ein beliebiger Typ, der IEnumerable<T> zugewiesen werden kann, werden jedoch nicht serialisiert. Sie werden as-is zurückgegeben, um die spezialisierte Behandlung zu erleichtern.

Ein JSON-Schema wird auch vom Rückgabetyp der Methode abgeleitet und über ReturnJsonSchema. Für Methoden, die Voidein TaskRückgabeschema zurückgeben oder ValueTaskzurückgeben, wird kein Rückgabeschema erstellt. Bei Methoden, die Task<TResult> zurückgegeben werden oder ValueTask<TResult>, wird das Schema vom ergebnistyp "unwrapped" abgeleitet.

Gilt für:

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

Quelle:
AIFunctionFactory.cs

Erstellt eine AIFunction Instanz für eine Methode, die über eine MethodInfo Instanz und ein optionales Zielobjekt angegeben wird, wenn es sich bei der Methode um eine Instanzmethode handelt.

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

Parameter

method
MethodInfo

Die Methode, die über die erstellte AIFunctionDargestellt werden soll.

target
Object

Das Zielobjekt für den method Fall, dass es eine Instanzmethode darstellt. Dies sollte nur dann erfolgen null , wenn method es sich um eine statische Methode handelt.

name
String

Der Name, der für die AIFunction. Wenn null, wird der Name von einem DisplayNameAttributemethodvon , falls verfügbar, oder anderen vom Namen von method.

description
String

Die Beschreibung, die für die AIFunction. Wenn null, wird eine Beschreibung von einem von , DescriptionAttributemethodfalls verfügbar, abgeleitet.

serializerOptions
JsonSerializerOptions

Die JsonSerializerOptions zum Marshallen von Funktionsparametern und rückgabewerten verwendeten Werte.

Gibt zurück

Das erstellt AIFunction für das Aufrufen method.

Ausnahmen

method stellt eine Instanzmethode dar, ist jedoch target NULL.

method enthält einen Parameter ohne Parameternamen.

Ein Parameter an method oder sein Rückgabetyp kann nicht serialisiert werden.

Hinweise

Alle Parameter, method die aus dem AIFunctionArgumentsWörterbuch von Schlüssel-Wert-Paaren stammen und im JSON-Schema für die Funktion dargestellt werden, wie in den zurückgegebenen AIFunction's JsonSchemaverfügbar gemacht. Es gibt einige Ausnahmen:

Alle anderen Parametertypen werden vom AIFunctionArguments übergebenen InvokeAsync(AIFunctionArguments, CancellationToken) Wörterbuch gebunden und sind im generierten JSON-Schema enthalten.

Durch das Marshalling von Parametern aus dem AIFunctionArguments Wörterbuch können Werte direkt an den methodAufruf des Objekts übergeben werden, wenn das Objekt bereits einen kompatiblen Typ aufweist. Andernfalls, wenn das Argument ein JsonElement, , oder JsonNode, es wird in den Parametertyp deserialisiert, verwendetserializerOptions, wenn angegeben, oder sonst DefaultOptionsJsonDocument. Wenn das Argument etwas anderes ist, wird es durch JSON gerundet, das Objekt als JSON serialisiert und dann auf den erwarteten Typ deserialisieren.

Im Allgemeinen werden die über ein AIFunctionArgumentsWörterbuch bereitgestellten Daten von einem KI-Dienst bereitgestellt und sollten als nichtvalidiert und nicht vertrauenswürdig betrachtet werden. Um validierte und vertrauenswürdige Daten für den Aufruf methodbereitzustellen, sollten Sie erwägen method , auf eine Instanzmethode für eine Instanz zu verweisen, die für den geeigneten Zustand konfiguriert ist. Ein IServiceProvider Parameter kann auch verwendet werden, um Dienste aus einem Abhängigkeitseinfügungscontainer aufzulösen.

Rückgabewerte werden serialisiert, um sie zu JsonElement verwenden serializerOptions , sofern angegeben, oder mit anderen Verwenden DefaultOptions. Rückgabewerte, deren deklarierter Typ AIContent, ein abgeleiteter Typ AIContentoder ein beliebiger Typ, der IEnumerable<T> zugewiesen werden kann, werden jedoch ohne Serialisierung zurückgegeben, um eine spezielle Behandlung zu ermöglichen.

Ein JSON-Schema wird auch vom Rückgabetyp der Methode abgeleitet und über ReturnJsonSchema. Für Methoden, die Voidein TaskRückgabeschema zurückgeben oder ValueTaskzurückgeben, wird kein Rückgabeschema erstellt. Bei Methoden, die Task<TResult> zurückgegeben werden oder ValueTask<TResult>, wird das Schema vom ergebnistyp "unwrapped" abgeleitet.

Gilt für: