次の方法で共有


AIFunctionFactory.Create メソッド

定義

オーバーロード

名前 説明
Create(Delegate, AIFunctionFactoryOptions)

デリゲートを使用して指定されたメソッドの AIFunction インスタンスを作成します。

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

インスタンス メソッドのMethodInfoと、AIFunctionが呼び出されるたびに受信側オブジェクトのインスタンスを構築するためのFunc<T,TResult>を使用して指定された、メソッドのAIFunction インスタンスを作成します。

Create(MethodInfo, Object, AIFunctionFactoryOptions)

MethodInfo インスタンスを使用して指定されたメソッドのAIFunction インスタンスを作成し、メソッドがインスタンス メソッドの場合は省略可能なターゲット オブジェクトを作成します。

Create(Delegate, String, String, JsonSerializerOptions)

デリゲートを使用して指定されたメソッドの AIFunction インスタンスを作成します。

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

MethodInfo インスタンスを使用して指定されたメソッドのAIFunction インスタンスを作成し、メソッドがインスタンス メソッドの場合は省略可能なターゲット オブジェクトを作成します。

Create(Delegate, AIFunctionFactoryOptions)

ソース:
AIFunctionFactory.cs

デリゲートを使用して指定されたメソッドの AIFunction インスタンスを作成します。

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

パラメーター

method
Delegate

作成された AIFunctionを介して表されるメソッド。

options
AIFunctionFactoryOptions

methodから推論された既定値をオーバーライドするために使用するメタデータ。

返品

methodを呼び出すための作成されたAIFunction

例外

methodnullです。

methodするパラメーターはシリアル化できません。

注釈

既定では、 method するパラメーターは、 AIFunctionArgumentsのキーと値のペアのディクショナリから取得され、返された AIFunctionJsonSchemaで公開されているように、関数の JSON スキーマで表されます。 これにはいくつかの例外があります。

他のすべてのパラメーター型は、既定では、InvokeAsync(AIFunctionArguments, CancellationToken)に渡されるAIFunctionArgumentsディクショナリからバインドされ、生成された JSON スキーマに含まれます。 これは、options パラメーターを使用して指定されたConfigureParameterBindingによってオーバーライドできます。すべてのパラメーターについて、デリゲートは、生成されたスキーマにパラメーターを含める必要があるかどうか、およびその値のバインド方法を選択できます (既定では、AIFunctionArguments ディクショナリに含まれていない必須パラメーターは例外がスローされます)。 緩やかに型指定された追加のコンテキスト情報は、AIFunctionArgumentsContext ディクショナリを介してInvokeAsync(AIFunctionArguments, CancellationToken)に渡すことができます。既定のバインディングではこのコレクションは無視されますが、ConfigureParameterBindingを介して指定されたカスタム バインドは、このデータから引数をソースすることを選択できます。

AIFunctionArguments ディクショナリからのパラメーターの既定のマーシャリングにより、オブジェクトが既に互換性のある型の場合、methodの呼び出しに値を直接渡すことができます。 それ以外の場合、引数が JsonElementJsonDocument、または JsonNodeの場合は、パラメーター型に逆シリアル化され、指定されている場合は SerializerOptions を使用するか、 DefaultOptionsを使用して逆シリアル化されます。 引数がそれ以外の場合は、JSON を通じてラウンドトリップされ、オブジェクトが JSON としてシリアル化され、その後、想定される型に逆シリアル化されます。

一般に、 AIFunctionArgumentsのディクショナリを介して提供されるデータは AI サービスから提供されるため、未検証で信頼されていないと見なす必要があります。 検証済みで信頼できるデータを methodの呼び出しに提供するには、適切な状態を保持するように構成されたインスタンスのインスタンス メソッドを method ポイントすることを検討してください。 IServiceProvider パラメーターを使用して、依存関係挿入コンテナーからサービスを解決することもできます。

既定では、戻り値は、optionsSerializerOptions (指定されている場合) を使用してJsonElementにシリアル化されるか、DefaultOptionsを使用してシリアル化されます。 ただし、宣言された型が AIContentAIContentの派生型、または IEnumerable<T> から割り当て可能な型 ( AIContent[]List<AIContent>など) の戻り値は特殊なケースであり、シリアル化されません。作成された関数は、元のインスタンスを直接返して、呼び出し元 ( IChatClient など) が型テストを実行し、特殊な処理を実装できるようにします。 MarshalResultが指定されている場合、そのデリゲートが代わりに動作を管理します。

パラメーター スキーマに加えて、JSON スキーマもメソッドの戻り値の型から派生し、返された AIFunctionReturnJsonSchemaを介して公開されます。 VoidTask、またはValueTaskを返すメソッドの場合、戻りスキーマは生成されません (プロパティはnull)。 Task<TResult>またはValueTask<TResult>を返すメソッドの場合、スキーマはラップされていない結果の型から派生します。 戻りスキーマの生成は ExcludeResultSchemaを介して除外でき、その生成は optionsJsonSchemaCreateOptionsによって制御されます。

適用対象

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

ソース:
AIFunctionFactory.cs

インスタンス メソッドのMethodInfoと、AIFunctionが呼び出されるたびに受信側オブジェクトのインスタンスを構築するためのFunc<T,TResult>を使用して指定された、メソッドのAIFunction インスタンスを作成します。

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

パラメーター

method
MethodInfo

作成された AIFunctionを介して表されるインスタンス メソッド。

createInstanceFunc
Func<AIFunctionArguments,Object>

各関数呼び出しで使用されるコールバックは、インスタンス メソッド method 呼び出される型のインスタンスを作成します。 返されたインスタンスが IAsyncDisposable または IDisposable場合、 method が呼び出しを完了した後に破棄されます。

options
AIFunctionFactoryOptions

methodから推論された既定値をオーバーライドするために使用するメタデータ。

返品

methodを呼び出すための作成されたAIFunction

例外

createInstanceFuncnullです。

method には、パラメーター名のないパラメーターが含まれています。

methodするパラメーターまたはその戻り値の型はシリアル化できません。

注釈

戻り値は、optionsSerializerOptionsを使用してJsonElementにシリアル化されます。 想定される型ではない引数は、JSON を使用して、 optionsSerializerOptionsを使用して、予期される型にマーシャリングされます。 引数が JsonElementJsonDocument、または JsonNodeの場合は、直接逆シリアル化されます。 引数が不明な場合は、JSON を通じてラウンドトリップされ、オブジェクトを JSON としてシリアル化し、それを予期される型に逆シリアル化します。

既定では、 method するパラメーターは、 AIFunctionArgumentsのキーと値のペアのディクショナリから取得され、返された AIFunctionJsonSchemaで公開されているように、関数の JSON スキーマで表されます。 これにはいくつかの例外があります。

他のすべてのパラメーター型は、既定では、InvokeAsync(AIFunctionArguments, CancellationToken)に渡されるAIFunctionArgumentsディクショナリからバインドされ、生成された JSON スキーマに含まれます。 これは、options パラメーターを使用して指定されたConfigureParameterBindingによってオーバーライドできます。すべてのパラメーターについて、デリゲートは、生成されたスキーマにパラメーターを含める必要があるかどうか、およびその値のバインド方法を選択できます (既定では、AIFunctionArguments ディクショナリに含まれていない必須パラメーターは例外がスローされます)。 緩やかに型指定された追加のコンテキスト情報は、AIFunctionArgumentsContext ディクショナリを介してInvokeAsync(AIFunctionArguments, CancellationToken)に渡すことができます。既定のバインディングではこのコレクションは無視されますが、ConfigureParameterBindingを介して指定されたカスタム バインドは、このデータから引数をソースすることを選択できます。

AIFunctionArguments ディクショナリからのパラメーターの既定のマーシャリングにより、オブジェクトが既に互換性のある型の場合、methodの呼び出しに値を直接渡すことができます。 それ以外の場合、引数が JsonElementJsonDocument、または JsonNodeの場合は、パラメーター型に逆シリアル化され、指定されている場合は SerializerOptions を使用するか、 DefaultOptionsを使用して逆シリアル化されます。 引数がそれ以外の場合は、JSON を通じてラウンドトリップされ、オブジェクトが JSON としてシリアル化され、その後、想定される型に逆シリアル化されます。

一般に、 AIFunctionArgumentsのディクショナリを介して提供されるデータは AI サービスから提供されるため、未検証で信頼されていないと見なす必要があります。 検証済みで信頼できるデータを methodの呼び出しに提供するために、各呼び出し用に構築されたインスタンスにそのデータを含めることができます。これにより、インスタンス データとして method できます。 IServiceProvider パラメーターを使用して、依存関係挿入コンテナーからサービスを解決することもできます。

既定では、戻り値は、optionsSerializerOptions (指定されている場合) を使用してJsonElementにシリアル化されるか、DefaultOptionsを使用してシリアル化されます。 ただし、宣言された型が AIContentAIContentの派生型、または IEnumerable<T> から割り当て可能な型を持つ戻り値は、シリアル化なしで直接返されます。 戻り値の処理は、 MarshalResultを使用してオーバーライドできます。

パラメーター スキーマに加えて、JSON スキーマもメソッドの戻り値の型から派生し、返された AIFunctionReturnJsonSchemaを介して公開されます。 VoidTask、またはValueTaskを返すメソッドの場合、戻りスキーマは生成されません (プロパティはnull)。 Task<TResult>またはValueTask<TResult>を返すメソッドの場合、スキーマはラップされていない結果の型から派生します。 戻りスキーマの生成は ExcludeResultSchemaを介して除外でき、その生成は optionsJsonSchemaCreateOptionsによって制御されます。

適用対象

Create(MethodInfo, Object, AIFunctionFactoryOptions)

ソース:
AIFunctionFactory.cs

MethodInfo インスタンスを使用して指定されたメソッドのAIFunction インスタンスを作成し、メソッドがインスタンス メソッドの場合は省略可能なターゲット オブジェクトを作成します。

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

パラメーター

method
MethodInfo

作成された AIFunctionを介して表されるメソッド。

target
Object

インスタンス メソッドを表す method のターゲット オブジェクト。 これは、methodが静的メソッドの場合にのみnullする必要があります。

options
AIFunctionFactoryOptions

methodから推論された既定値をオーバーライドするために使用するメタデータ。

返品

methodを呼び出すための作成されたAIFunction

例外

method はインスタンス メソッドを表しますが、 target は null です。

method には、パラメーター名のないパラメーターが含まれています。

methodするパラメーターまたはその戻り値の型はシリアル化できません。

注釈

既定では、 method するパラメーターは、 AIFunctionArgumentsのキーと値のペアのディクショナリから取得され、返された AIFunctionJsonSchemaで公開されているように、関数の JSON スキーマで表されます。 これにはいくつかの例外があります。

他のすべてのパラメーター型は、既定では、InvokeAsync(AIFunctionArguments, CancellationToken)に渡されるAIFunctionArgumentsディクショナリからバインドされ、生成された JSON スキーマに含まれます。 これは、options パラメーターを使用して指定されたConfigureParameterBindingによってオーバーライドできます。すべてのパラメーターについて、デリゲートは、生成されたスキーマにパラメーターを含める必要があるかどうか、およびその値のバインド方法を選択できます (既定では、AIFunctionArguments ディクショナリに含まれていない必須パラメーターは例外がスローされます)。 緩やかに型指定された追加のコンテキスト情報は、AIFunctionArgumentsContext ディクショナリを介してInvokeAsync(AIFunctionArguments, CancellationToken)に渡すことができます。既定のバインドではこのコレクションは無視されますが、ConfigureParameterBindingを介して指定されたカスタム バインドは、このデータから引数をソースすることを選択できます。

AIFunctionArguments ディクショナリからのパラメーターの既定のマーシャリングにより、オブジェクトが既に互換性のある型の場合、methodの呼び出しに値を直接渡すことができます。 それ以外の場合、引数が JsonElementJsonDocument、または JsonNodeの場合は、パラメーター型に逆シリアル化され、指定されている場合は SerializerOptions を使用するか、 DefaultOptionsを使用して逆シリアル化されます。 引数がそれ以外の場合は、JSON を通じてラウンドトリップされ、オブジェクトが JSON としてシリアル化され、その後、想定される型に逆シリアル化されます。

一般に、 AIFunctionArgumentsのディクショナリを介して提供されるデータは AI サービスから提供されるため、未検証で信頼されていないと見なす必要があります。 検証済みで信頼できるデータを methodの呼び出しに提供するには、適切な状態を保持するように構成されたインスタンスのインスタンス メソッドを method ポイントすることを検討してください。 IServiceProvider パラメーターを使用して、依存関係挿入コンテナーからサービスを解決することもできます。

既定では、戻り値は、optionsSerializerOptions (指定されている場合) を使用してJsonElementにシリアル化されるか、DefaultOptionsを使用してシリアル化されます。 ただし、宣言された型が AIContentAIContentの派生型、または IEnumerable<T> から割り当て可能な型を持つ戻り値はシリアル化されず、代わりに直接返されます。 戻り値の処理は、 MarshalResultを使用してオーバーライドできます。

パラメーター スキーマに加えて、JSON スキーマもメソッドの戻り値の型から派生し、返された AIFunctionReturnJsonSchemaを介して公開されます。 VoidTask、またはValueTaskを返すメソッドの場合、戻りスキーマは生成されません (プロパティはnull)。 Task<TResult>またはValueTask<TResult>を返すメソッドの場合、スキーマはラップされていない結果の型から派生します。 戻りスキーマの生成は ExcludeResultSchemaを介して除外でき、その生成は optionsJsonSchemaCreateOptionsによって制御されます。

適用対象

Create(Delegate, String, String, JsonSerializerOptions)

ソース:
AIFunctionFactory.cs

デリゲートを使用して指定されたメソッドの AIFunction インスタンスを作成します。

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

パラメーター

method
Delegate

作成された AIFunctionを介して表されるメソッド。

name
String

AIFunctionに使用する名前。 null場合、名前はmethod上の任意のDisplayNameAttributeから派生するか、使用可能な場合はmethodの名前から派生します。

description
String

AIFunctionに使用する説明。 null場合、説明は、method上の任意のDescriptionAttribute (使用可能な場合) から派生します。

serializerOptions
JsonSerializerOptions

JsonSerializerOptions関数パラメーターと戻り値をマーシャリングするために使用されます。

返品

methodを呼び出すための作成されたAIFunction

例外

methodnullです。

methodするパラメーターはシリアル化できません。

注釈

methodするパラメーターはすべて、AIFunctionArgumentsのキーと値のペアのディクショナリから取得され、返されたAIFunctionJsonSchemaで公開されているように、関数の JSON スキーマで表されます。 これにはいくつかの例外があります。

他のすべてのパラメーター型は、InvokeAsync(AIFunctionArguments, CancellationToken)に渡されたAIFunctionArgumentsディクショナリからバインドされ、生成された JSON スキーマに含まれます。

AIFunctionArguments ディクショナリからパラメーターをマーシャリングすると、オブジェクトが既に互換性のある型である場合に、methodの呼び出しに値を直接渡すことができます。 それ以外の場合、引数が JsonElementJsonDocument、または JsonNodeの場合は、パラメーター型に逆シリアル化され、指定されている場合は serializerOptions を使用するか、 DefaultOptions。 引数がそれ以外の場合は、JSON を通じてラウンドトリップされ、オブジェクトが JSON としてシリアル化され、その後、想定される型に逆シリアル化されます。

一般に、 AIFunctionArgumentsのディクショナリを介して提供されるデータは AI サービスから提供されるため、未検証で信頼されていないと見なす必要があります。 検証済みで信頼できるデータを methodの呼び出しに提供するには、適切な状態を保持するように構成されたインスタンスのインスタンス メソッドを method ポイントすることを検討してください。 IServiceProvider パラメーターを使用して、依存関係挿入コンテナーからサービスを解決することもできます。

戻り値は、指定された場合はserializerOptionsを使用してJsonElementにシリアル化されます。それ以外の場合は、DefaultOptionsを使用してシリアル化されます。 ただし、宣言された型が AIContentAIContentの派生型、または IEnumerable<T> から割り当て可能な型を持つ戻り値はシリアル化されません。特殊な処理を容易にするために as-is 返されます。

JSON スキーマもメソッドの戻り値の型から派生し、 ReturnJsonSchemaを介して公開されます。 VoidTask、またはValueTaskを返すメソッドの場合、戻りスキーマは生成されません。 Task<TResult>またはValueTask<TResult>を返すメソッドの場合、スキーマはラップされていない結果の型から派生します。

適用対象

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

ソース:
AIFunctionFactory.cs

MethodInfo インスタンスを使用して指定されたメソッドのAIFunction インスタンスを作成し、メソッドがインスタンス メソッドの場合は省略可能なターゲット オブジェクトを作成します。

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

パラメーター

method
MethodInfo

作成された AIFunctionを介して表されるメソッド。

target
Object

インスタンス メソッドを表す method のターゲット オブジェクト。 これは、methodが静的メソッドの場合にのみnullする必要があります。

name
String

AIFunctionに使用する名前。 null場合、名前はmethod上の任意のDisplayNameAttributeから派生するか、使用可能な場合はmethodの名前から派生します。

description
String

AIFunctionに使用する説明。 null場合、説明は、method上の任意のDescriptionAttribute (使用可能な場合) から派生します。

serializerOptions
JsonSerializerOptions

JsonSerializerOptions関数パラメーターと戻り値をマーシャリングするために使用されます。

返品

methodを呼び出すための作成されたAIFunction

例外

method はインスタンス メソッドを表しますが、 target は null です。

method には、パラメーター名のないパラメーターが含まれています。

methodするパラメーターまたはその戻り値の型はシリアル化できません。

注釈

methodするパラメーターはすべて、AIFunctionArgumentsのキーと値のペアのディクショナリから取得され、返されたAIFunctionJsonSchemaで公開されているように、関数の JSON スキーマで表されます。 これにはいくつかの例外があります。

他のすべてのパラメーター型は、InvokeAsync(AIFunctionArguments, CancellationToken)に渡されたAIFunctionArgumentsディクショナリからバインドされ、生成された JSON スキーマに含まれます。

AIFunctionArguments ディクショナリからパラメーターをマーシャリングすると、オブジェクトが既に互換性のある型である場合に、methodの呼び出しに値を直接渡すことができます。 それ以外の場合、引数が JsonElementJsonDocument、または JsonNodeの場合は、パラメーター型に逆シリアル化され、指定されている場合は serializerOptions を使用するか、 DefaultOptions。 引数がそれ以外の場合は、JSON を通じてラウンドトリップされ、オブジェクトが JSON としてシリアル化され、その後、想定される型に逆シリアル化されます。

一般に、 AIFunctionArgumentsのディクショナリを介して提供されるデータは AI サービスから提供されるため、未検証で信頼されていないと見なす必要があります。 検証済みで信頼できるデータを methodの呼び出しに提供するには、適切な状態を保持するように構成されたインスタンスのインスタンス メソッドを method ポイントすることを検討してください。 IServiceProvider パラメーターを使用して、依存関係挿入コンテナーからサービスを解決することもできます。

戻り値は、指定された場合はserializerOptionsを使用してJsonElementにシリアル化されます。それ以外の場合は、DefaultOptionsを使用してシリアル化されます。 ただし、宣言された型が AIContentAIContentの派生型、または IEnumerable<T> から割り当て可能な型を持つ戻り値は、特殊な処理を有効にするためにシリアル化なしで返されます。

JSON スキーマもメソッドの戻り値の型から派生し、 ReturnJsonSchemaを介して公開されます。 VoidTask、またはValueTaskを返すメソッドの場合、戻りスキーマは生成されません。 Task<TResult>またはValueTask<TResult>を返すメソッドの場合、スキーマはラップされていない結果の型から派生します。

適用対象