AIFunctionFactory.Create メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
| 名前 | 説明 |
|---|---|
| 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)
デリゲートを使用して指定されたメソッドの 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。
例外
method は nullです。
methodするパラメーターはシリアル化できません。
注釈
既定では、 method するパラメーターは、 AIFunctionArgumentsのキーと値のペアのディクショナリから取得され、返された AIFunctionの JsonSchemaで公開されているように、関数の JSON スキーマで表されます。 これにはいくつかの例外があります。
- CancellationTokenパラメーターは、InvokeAsync(AIFunctionArguments, CancellationToken)の CancellationToken パラメーターを介して呼び出しに渡されるCancellationTokenに自動的にバインドされます。 このパラメーターは、生成された JSON スキーマには含まれません。 CancellationTokenパラメーターの動作をオーバーライドすることはできません。
- 既定では、 IServiceProvider パラメーターは Services プロパティからバインドされ、JSON スキーマには含まれません。 既定値が指定されるように、パラメーターが省略可能な場合は、 Services を
nullできます。それ以外の場合は、 Services がnullでない必要があります。そうしないと、パラメーターの必須の性質により、呼び出しは例外で失敗します。 IServiceProviderパラメーターの処理は、ConfigureParameterBindingを使用してオーバーライドできます。 - 既定では、AIFunctionArguments パラメーターは、InvokeAsync(AIFunctionArguments, CancellationToken)に渡AIFunctionArgumentsインスタンスに直接バインドされ、JSON スキーマには含まれません。
InvokeAsync(AIFunctionArguments, CancellationToken)に渡されるAIFunctionArguments インスタンスが
nullされている場合、AIFunction実装は空のインスタンスを作成します。これにより、省略可能かどうかに関係なく、AIFunctionArguments型のパラメーターを常に満たすことができます。 AIFunctionArgumentsパラメーターの処理は、ConfigureParameterBindingを使用してオーバーライドできます。
options パラメーターを使用して指定されたConfigureParameterBindingによってオーバーライドできます。すべてのパラメーターについて、デリゲートは、生成されたスキーマにパラメーターを含める必要があるかどうか、およびその値のバインド方法を選択できます (既定では、AIFunctionArguments ディクショナリに含まれていない必須パラメーターは例外がスローされます)。 緩やかに型指定された追加のコンテキスト情報は、AIFunctionArgumentsのContext ディクショナリを介してInvokeAsync(AIFunctionArguments, CancellationToken)に渡すことができます。既定のバインディングではこのコレクションは無視されますが、ConfigureParameterBindingを介して指定されたカスタム バインドは、このデータから引数をソースすることを選択できます。
AIFunctionArguments ディクショナリからのパラメーターの既定のマーシャリングにより、オブジェクトが既に互換性のある型の場合、methodの呼び出しに値を直接渡すことができます。 それ以外の場合、引数が JsonElement、 JsonDocument、または JsonNodeの場合は、パラメーター型に逆シリアル化され、指定されている場合は SerializerOptions を使用するか、 DefaultOptionsを使用して逆シリアル化されます。 引数がそれ以外の場合は、JSON を通じてラウンドトリップされ、オブジェクトが JSON としてシリアル化され、その後、想定される型に逆シリアル化されます。
一般に、 AIFunctionArgumentsのディクショナリを介して提供されるデータは AI サービスから提供されるため、未検証で信頼されていないと見なす必要があります。 検証済みで信頼できるデータを methodの呼び出しに提供するには、適切な状態を保持するように構成されたインスタンスのインスタンス メソッドを method ポイントすることを検討してください。
IServiceProvider パラメーターを使用して、依存関係挿入コンテナーからサービスを解決することもできます。
既定では、戻り値は、optionsのSerializerOptions (指定されている場合) を使用してJsonElementにシリアル化されるか、DefaultOptionsを使用してシリアル化されます。 ただし、宣言された型が AIContent、 AIContentの派生型、または IEnumerable<T> から割り当て可能な型 ( AIContent[]、 List<AIContent>など) の戻り値は特殊なケースであり、シリアル化されません。作成された関数は、元のインスタンスを直接返して、呼び出し元 ( IChatClient など) が型テストを実行し、特殊な処理を実装できるようにします。
MarshalResultが指定されている場合、そのデリゲートが代わりに動作を管理します。
パラメーター スキーマに加えて、JSON スキーマもメソッドの戻り値の型から派生し、返された AIFunctionの ReturnJsonSchemaを介して公開されます。
Void、Task、またはValueTaskを返すメソッドの場合、戻りスキーマは生成されません (プロパティはnull)。
Task<TResult>またはValueTask<TResult>を返すメソッドの場合、スキーマはラップされていない結果の型から派生します。 戻りスキーマの生成は ExcludeResultSchemaを介して除外でき、その生成は optionsの JsonSchemaCreateOptionsによって制御されます。
適用対象
Create(MethodInfo, Func<AIFunctionArguments,Object>, AIFunctionFactoryOptions)
インスタンス メソッドの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。
例外
createInstanceFunc は nullです。
method には、パラメーター名のないパラメーターが含まれています。
methodするパラメーターまたはその戻り値の型はシリアル化できません。
注釈
戻り値は、optionsのSerializerOptionsを使用してJsonElementにシリアル化されます。 想定される型ではない引数は、JSON を使用して、 optionsの SerializerOptionsを使用して、予期される型にマーシャリングされます。 引数が JsonElement、 JsonDocument、または JsonNodeの場合は、直接逆シリアル化されます。 引数が不明な場合は、JSON を通じてラウンドトリップされ、オブジェクトを JSON としてシリアル化し、それを予期される型に逆シリアル化します。
既定では、 method するパラメーターは、 AIFunctionArgumentsのキーと値のペアのディクショナリから取得され、返された AIFunctionの JsonSchemaで公開されているように、関数の JSON スキーマで表されます。 これにはいくつかの例外があります。
- CancellationTokenパラメーターは、InvokeAsync(AIFunctionArguments, CancellationToken)の CancellationToken パラメーターを介して呼び出しに渡されるCancellationTokenに自動的にバインドされます。 このパラメーターは、生成された JSON スキーマには含まれません。 CancellationTokenパラメーターの動作をオーバーライドすることはできません。
- 既定では、 IServiceProvider パラメーターは Services プロパティからバインドされ、JSON スキーマには含まれません。 既定値が指定されるように、パラメーターが省略可能な場合は、 Services を
nullできます。それ以外の場合は、 Services がnullでない必要があります。そうしないと、パラメーターの必須の性質により、呼び出しは例外で失敗します。 IServiceProviderパラメーターの処理は、ConfigureParameterBindingを使用してオーバーライドできます。 - 既定では、AIFunctionArguments パラメーターは、InvokeAsync(AIFunctionArguments, CancellationToken)に渡AIFunctionArgumentsインスタンスに直接バインドされ、JSON スキーマには含まれません。
InvokeAsync(AIFunctionArguments, CancellationToken)に渡されるAIFunctionArguments インスタンスが
nullされている場合、AIFunction実装は空のインスタンスを作成します。これにより、省略可能かどうかに関係なく、AIFunctionArguments型のパラメーターを常に満たすことができます。 AIFunctionArgumentsパラメーターの処理は、ConfigureParameterBindingを使用してオーバーライドできます。
options パラメーターを使用して指定されたConfigureParameterBindingによってオーバーライドできます。すべてのパラメーターについて、デリゲートは、生成されたスキーマにパラメーターを含める必要があるかどうか、およびその値のバインド方法を選択できます (既定では、AIFunctionArguments ディクショナリに含まれていない必須パラメーターは例外がスローされます)。 緩やかに型指定された追加のコンテキスト情報は、AIFunctionArgumentsのContext ディクショナリを介してInvokeAsync(AIFunctionArguments, CancellationToken)に渡すことができます。既定のバインディングではこのコレクションは無視されますが、ConfigureParameterBindingを介して指定されたカスタム バインドは、このデータから引数をソースすることを選択できます。
AIFunctionArguments ディクショナリからのパラメーターの既定のマーシャリングにより、オブジェクトが既に互換性のある型の場合、methodの呼び出しに値を直接渡すことができます。 それ以外の場合、引数が JsonElement、 JsonDocument、または JsonNodeの場合は、パラメーター型に逆シリアル化され、指定されている場合は SerializerOptions を使用するか、 DefaultOptionsを使用して逆シリアル化されます。 引数がそれ以外の場合は、JSON を通じてラウンドトリップされ、オブジェクトが JSON としてシリアル化され、その後、想定される型に逆シリアル化されます。
一般に、 AIFunctionArgumentsのディクショナリを介して提供されるデータは AI サービスから提供されるため、未検証で信頼されていないと見なす必要があります。 検証済みで信頼できるデータを methodの呼び出しに提供するために、各呼び出し用に構築されたインスタンスにそのデータを含めることができます。これにより、インスタンス データとして method できます。
IServiceProvider パラメーターを使用して、依存関係挿入コンテナーからサービスを解決することもできます。
既定では、戻り値は、optionsのSerializerOptions (指定されている場合) を使用してJsonElementにシリアル化されるか、DefaultOptionsを使用してシリアル化されます。 ただし、宣言された型が AIContent、 AIContentの派生型、または IEnumerable<T> から割り当て可能な型を持つ戻り値は、シリアル化なしで直接返されます。 戻り値の処理は、 MarshalResultを使用してオーバーライドできます。
パラメーター スキーマに加えて、JSON スキーマもメソッドの戻り値の型から派生し、返された AIFunctionの ReturnJsonSchemaを介して公開されます。
Void、Task、またはValueTaskを返すメソッドの場合、戻りスキーマは生成されません (プロパティはnull)。
Task<TResult>またはValueTask<TResult>を返すメソッドの場合、スキーマはラップされていない結果の型から派生します。 戻りスキーマの生成は ExcludeResultSchemaを介して除外でき、その生成は optionsの JsonSchemaCreateOptionsによって制御されます。
適用対象
Create(MethodInfo, Object, AIFunctionFactoryOptions)
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のキーと値のペアのディクショナリから取得され、返された AIFunctionの JsonSchemaで公開されているように、関数の JSON スキーマで表されます。 これにはいくつかの例外があります。
- CancellationTokenパラメーターは、InvokeAsync(AIFunctionArguments, CancellationToken)の CancellationToken パラメーターを介して呼び出しに渡されるCancellationTokenに自動的にバインドされます。 このパラメーターは、生成された JSON スキーマには含まれません。 CancellationTokenパラメーターの動作をオーバーライドすることはできません。
- 既定では、 IServiceProvider パラメーターは Services プロパティからバインドされ、JSON スキーマには含まれません。 既定値が指定されるように、パラメーターが省略可能な場合は、 Services を
nullできます。それ以外の場合は、 Services がnullでない必要があります。そうしないと、パラメーターの必須の性質により、呼び出しは例外で失敗します。 IServiceProviderパラメーターの処理は、ConfigureParameterBindingを使用してオーバーライドできます。 - 既定では、AIFunctionArguments パラメーターは、InvokeAsync(AIFunctionArguments, CancellationToken)に渡AIFunctionArgumentsインスタンスに直接バインドされ、JSON スキーマには含まれません。
InvokeAsync(AIFunctionArguments, CancellationToken)に渡されるAIFunctionArguments インスタンスが
nullされている場合、AIFunction実装は空のインスタンスを作成します。これにより、省略可能かどうかに関係なく、AIFunctionArguments型のパラメーターを常に満たすことができます。 AIFunctionArgumentsパラメーターの処理は、ConfigureParameterBindingを使用してオーバーライドできます。
options パラメーターを使用して指定されたConfigureParameterBindingによってオーバーライドできます。すべてのパラメーターについて、デリゲートは、生成されたスキーマにパラメーターを含める必要があるかどうか、およびその値のバインド方法を選択できます (既定では、AIFunctionArguments ディクショナリに含まれていない必須パラメーターは例外がスローされます)。 緩やかに型指定された追加のコンテキスト情報は、AIFunctionArgumentsのContext ディクショナリを介してInvokeAsync(AIFunctionArguments, CancellationToken)に渡すことができます。既定のバインドではこのコレクションは無視されますが、ConfigureParameterBindingを介して指定されたカスタム バインドは、このデータから引数をソースすることを選択できます。
AIFunctionArguments ディクショナリからのパラメーターの既定のマーシャリングにより、オブジェクトが既に互換性のある型の場合、methodの呼び出しに値を直接渡すことができます。 それ以外の場合、引数が JsonElement、 JsonDocument、または JsonNodeの場合は、パラメーター型に逆シリアル化され、指定されている場合は SerializerOptions を使用するか、 DefaultOptionsを使用して逆シリアル化されます。 引数がそれ以外の場合は、JSON を通じてラウンドトリップされ、オブジェクトが JSON としてシリアル化され、その後、想定される型に逆シリアル化されます。
一般に、 AIFunctionArgumentsのディクショナリを介して提供されるデータは AI サービスから提供されるため、未検証で信頼されていないと見なす必要があります。 検証済みで信頼できるデータを methodの呼び出しに提供するには、適切な状態を保持するように構成されたインスタンスのインスタンス メソッドを method ポイントすることを検討してください。
IServiceProvider パラメーターを使用して、依存関係挿入コンテナーからサービスを解決することもできます。
既定では、戻り値は、optionsのSerializerOptions (指定されている場合) を使用してJsonElementにシリアル化されるか、DefaultOptionsを使用してシリアル化されます。 ただし、宣言された型が AIContent、 AIContentの派生型、または IEnumerable<T> から割り当て可能な型を持つ戻り値はシリアル化されず、代わりに直接返されます。 戻り値の処理は、 MarshalResultを使用してオーバーライドできます。
パラメーター スキーマに加えて、JSON スキーマもメソッドの戻り値の型から派生し、返された AIFunctionの ReturnJsonSchemaを介して公開されます。
Void、Task、またはValueTaskを返すメソッドの場合、戻りスキーマは生成されません (プロパティはnull)。
Task<TResult>またはValueTask<TResult>を返すメソッドの場合、スキーマはラップされていない結果の型から派生します。 戻りスキーマの生成は ExcludeResultSchemaを介して除外でき、その生成は optionsの JsonSchemaCreateOptionsによって制御されます。
適用対象
Create(Delegate, String, String, JsonSerializerOptions)
デリゲートを使用して指定されたメソッドの 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。
例外
method は nullです。
methodするパラメーターはシリアル化できません。
注釈
methodするパラメーターはすべて、AIFunctionArgumentsのキーと値のペアのディクショナリから取得され、返されたAIFunctionのJsonSchemaで公開されているように、関数の JSON スキーマで表されます。 これにはいくつかの例外があります。
- CancellationTokenパラメーターは、InvokeAsync(AIFunctionArguments, CancellationToken)の CancellationToken パラメーターを介して呼び出しに渡されるCancellationTokenに自動的にバインドされます。 このパラメーターは、生成された JSON スキーマには含まれません。
- 既定では、 IServiceProvider パラメーターは Services プロパティからバインドされ、JSON スキーマには含まれません。 既定値が指定されるように、パラメーターが省略可能な場合は、 Services を
nullできます。それ以外の場合は、 Services がnullでない必要があります。そうしないと、パラメーターの必須の性質により、呼び出しは例外で失敗します。 - 既定では、AIFunctionArguments パラメーターは、InvokeAsync(AIFunctionArguments, CancellationToken)に渡AIFunctionArgumentsインスタンスに直接バインドされ、JSON スキーマには含まれません。
InvokeAsync(AIFunctionArguments, CancellationToken)に渡されるAIFunctionArguments インスタンスが
nullされている場合、AIFunction実装は空のインスタンスを作成します。これにより、省略可能かどうかに関係なく、AIFunctionArguments型のパラメーターを常に満たすことができます。
AIFunctionArguments ディクショナリからパラメーターをマーシャリングすると、オブジェクトが既に互換性のある型である場合に、methodの呼び出しに値を直接渡すことができます。 それ以外の場合、引数が JsonElement、 JsonDocument、または JsonNodeの場合は、パラメーター型に逆シリアル化され、指定されている場合は serializerOptions を使用するか、 DefaultOptions。 引数がそれ以外の場合は、JSON を通じてラウンドトリップされ、オブジェクトが JSON としてシリアル化され、その後、想定される型に逆シリアル化されます。
一般に、 AIFunctionArgumentsのディクショナリを介して提供されるデータは AI サービスから提供されるため、未検証で信頼されていないと見なす必要があります。 検証済みで信頼できるデータを methodの呼び出しに提供するには、適切な状態を保持するように構成されたインスタンスのインスタンス メソッドを method ポイントすることを検討してください。
IServiceProvider パラメーターを使用して、依存関係挿入コンテナーからサービスを解決することもできます。
戻り値は、指定された場合はserializerOptionsを使用してJsonElementにシリアル化されます。それ以外の場合は、DefaultOptionsを使用してシリアル化されます。 ただし、宣言された型が AIContent、 AIContentの派生型、または IEnumerable<T> から割り当て可能な型を持つ戻り値はシリアル化されません。特殊な処理を容易にするために as-is 返されます。
JSON スキーマもメソッドの戻り値の型から派生し、 ReturnJsonSchemaを介して公開されます。 Void、Task、またはValueTaskを返すメソッドの場合、戻りスキーマは生成されません。 Task<TResult>またはValueTask<TResult>を返すメソッドの場合、スキーマはラップされていない結果の型から派生します。
適用対象
Create(MethodInfo, Object, String, String, JsonSerializerOptions)
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のキーと値のペアのディクショナリから取得され、返されたAIFunctionのJsonSchemaで公開されているように、関数の JSON スキーマで表されます。 これにはいくつかの例外があります。
- CancellationTokenパラメーターは、InvokeAsync(AIFunctionArguments, CancellationToken)の CancellationToken パラメーターを介して呼び出しに渡されるCancellationTokenに自動的にバインドされます。 このパラメーターは、生成された JSON スキーマには含まれません。
- 既定では、 IServiceProvider パラメーターは Services プロパティからバインドされ、JSON スキーマには含まれません。 既定値が指定されるように、パラメーターが省略可能な場合は、 Services を
nullできます。それ以外の場合は、 Services がnullでない必要があります。そうしないと、パラメーターの必須の性質により、呼び出しは例外で失敗します。 - 既定では、AIFunctionArguments パラメーターは、InvokeAsync(AIFunctionArguments, CancellationToken)に渡AIFunctionArgumentsインスタンスに直接バインドされ、JSON スキーマには含まれません。
InvokeAsync(AIFunctionArguments, CancellationToken)に渡されるAIFunctionArguments インスタンスが
nullされている場合、AIFunction実装は空のインスタンスを作成します。これにより、省略可能かどうかに関係なく、AIFunctionArguments型のパラメーターを常に満たすことができます。
AIFunctionArguments ディクショナリからパラメーターをマーシャリングすると、オブジェクトが既に互換性のある型である場合に、methodの呼び出しに値を直接渡すことができます。 それ以外の場合、引数が JsonElement、 JsonDocument、または JsonNodeの場合は、パラメーター型に逆シリアル化され、指定されている場合は serializerOptions を使用するか、 DefaultOptions。 引数がそれ以外の場合は、JSON を通じてラウンドトリップされ、オブジェクトが JSON としてシリアル化され、その後、想定される型に逆シリアル化されます。
一般に、 AIFunctionArgumentsのディクショナリを介して提供されるデータは AI サービスから提供されるため、未検証で信頼されていないと見なす必要があります。 検証済みで信頼できるデータを methodの呼び出しに提供するには、適切な状態を保持するように構成されたインスタンスのインスタンス メソッドを method ポイントすることを検討してください。
IServiceProvider パラメーターを使用して、依存関係挿入コンテナーからサービスを解決することもできます。
戻り値は、指定された場合はserializerOptionsを使用してJsonElementにシリアル化されます。それ以外の場合は、DefaultOptionsを使用してシリアル化されます。 ただし、宣言された型が AIContent、 AIContentの派生型、または IEnumerable<T> から割り当て可能な型を持つ戻り値は、特殊な処理を有効にするためにシリアル化なしで返されます。
JSON スキーマもメソッドの戻り値の型から派生し、 ReturnJsonSchemaを介して公開されます。 Void、Task、またはValueTaskを返すメソッドの場合、戻りスキーマは生成されません。 Task<TResult>またはValueTask<TResult>を返すメソッドの場合、スキーマはラップされていない結果の型から派生します。