AIFunctionFactory.Create Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
AIFunction Tworzy wystąpienie metody określonej za pośrednictwem delegata.
Przeciążenia
| Nazwa | Opis |
|---|---|
| Create(Delegate, AIFunctionFactoryOptions) |
AIFunction Tworzy wystąpienie metody określonej za pośrednictwem delegata. |
| Create(MethodInfo, Func<AIFunctionArguments,Object>, AIFunctionFactoryOptions) |
AIFunction Tworzy wystąpienie metody określonej za pośrednictwem MethodInfo metody dla metody wystąpienia i klasy Func<T,TResult> do konstruowania wystąpienia obiektu odbiornika AIFunction za każdym razem, gdy jest wywoływany. |
| Create(MethodInfo, Object, AIFunctionFactoryOptions) |
AIFunction Tworzy wystąpienie metody określonej za pośrednictwem MethodInfo wystąpienia i opcjonalnego obiektu docelowego, jeśli metoda jest metodą wystąpienia. |
| Create(Delegate, String, String, JsonSerializerOptions) |
AIFunction Tworzy wystąpienie metody określonej za pośrednictwem delegata. |
| Create(MethodInfo, Object, String, String, JsonSerializerOptions) |
AIFunction Tworzy wystąpienie metody określonej za pośrednictwem MethodInfo wystąpienia i opcjonalnego obiektu docelowego, jeśli metoda jest metodą wystąpienia. |
Create(Delegate, AIFunctionFactoryOptions)
- Źródło:
- AIFunctionFactory.cs
AIFunction Tworzy wystąpienie metody określonej za pośrednictwem delegata.
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
Parametry
- method
- Delegate
Metoda, która ma być reprezentowana za pośrednictwem utworzonego AIFunctionelementu .
- options
- AIFunctionFactoryOptions
Metadane używane do zastępowania wartości domyślnych wywnioskowanych z elementu method.
Zwraca
AIFunction Utworzony do wywoływania methodelementu .
Wyjątki
Parametr method ma wartość null.
Parametr do method nie można serializować.
Uwagi
Domyślnie wszystkie parametry, które method mają być źródłowe ze AIFunctionArgumentssłownika par klucz/wartość i są reprezentowane w schemacie JSON dla funkcji, jak uwidocznione AIFunctionJsonSchemaw zwróconych parametrach . Istnieje kilka wyjątków od tego:
- CancellationToken parametry są automatycznie powiązane z CancellationToken przekazanym do wywołania za pomocą InvokeAsync(AIFunctionArguments, CancellationToken)parametru "s CancellationToken ". Parametr nie jest uwzględniony w wygenerowanych schematach JSON. Nie można zastąpić zachowania parametrów CancellationToken .
- Domyślnie IServiceProvider parametry są powiązane z właściwością Services i nie są uwzględniane w schemacie JSON. Jeśli parametr jest opcjonalny, taki, że podano wartość domyślną, Services może być
null; w przeciwnym razie musi być innyServices niżnulllub wywołanie zakończy się niepowodzeniem z wyjątkiem z powodu wymaganego charakteru parametru. Obsługę parametrów IServiceProvider można zastąpić za pomocą metody ConfigureParameterBinding. - Domyślnie AIFunctionArguments parametry są powiązane bezpośrednio z AIFunctionArguments wystąpieniem przekazanym do InvokeAsync(AIFunctionArguments, CancellationToken) i nie są uwzględniane w schemacie JSON.
AIFunctionArguments Jeśli przekazane wystąpienie InvokeAsync(AIFunctionArguments, CancellationToken) to
null, AIFunction implementacja generuje puste wystąpienie, tak aby parametry typu AIFunctionArguments zawsze mogły być spełnione, niezależnie od tego, czy jest to opcjonalne, czy nie. Obsługę parametrów AIFunctionArguments można zastąpić za pomocą metody ConfigureParameterBinding.
options . Dla każdego parametru delegat jest włączony, aby wybrać, czy parametr powinien być uwzględniony w wygenerowanym schemacie i jak jego wartość powinna być powiązana, w tym obsługa opcjonalnych (domyślnie wymagane parametry, które nie są uwzględnione w AIFunctionArguments słowniku, spowoduje zgłoszenie wyjątku). Luźno wpisywane dodatkowe informacje kontekstowe można przekazać za InvokeAsync(AIFunctionArguments, CancellationToken) pośrednictwem słownika AIFunctionArguments . Domyślne powiązanie ignoruje tę kolekcję, ale powiązanie niestandardowe dostarczone za pośrednictwem Context programu może wybrać argumenty źródłowe ConfigureParameterBindingz tych danych.Domyślne marshaling parametrów ze AIFunctionArguments słownika zezwala na przekazywanie wartości do methodwywołania bezpośrednio, jeśli obiekt jest już zgodnym typem. W przeciwnym razie, jeśli argument jest argumentem JsonElement, JsonDocumentlub JsonNode, jest deserializowany do typu parametru, używającSerializerOptions, jeśli podano, lub w inny sposób przy użyciu .DefaultOptions Jeśli argument jest czymkolwiek innym, jest zaokrąglony przez kod JSON, serializując obiekt jako JSON, a następnie deserializując go do oczekiwanego typu.
Ogólnie rzecz biorąc, dane dostarczane za pośrednictwem AIFunctionArgumentssłownika "s" są dostarczane z usługi sztucznej inteligencji i powinny być traktowane jako niezaufane i niezaufane. Aby dostarczyć zweryfikowane i zaufane dane do wywołania methodmetody , rozważ wskazanie method metody wystąpienia w wystąpieniu skonfigurowanym do przechowywania odpowiedniego stanu. Parametr IServiceProvider może również służyć do rozpoznawania usług z kontenera iniekcji zależności.
Domyślnie wartości zwracane są serializowane w celu JsonElement używania optionsparametrów "s SerializerOptions if provided" lub w inny sposób przy użyciu polecenia DefaultOptions. Jednak zwracane wartości, których zadeklarowany typ to AIContent, typ pochodny , lub dowolny typ AIContentprzypisywany z IEnumerable<T> (np. AIContent[], List<AIContent>) są specjalne i nie są serializowane: utworzona funkcja zwraca oryginalne wystąpienia bezpośrednio w celu włączenia wywołań (takich jak IChatClient) do wykonywania testów typów i implementowania wyspecjalizowanej obsługi. Jeśli MarshalResult zostanie podany, ten delegat zamiast tego zarządza zachowaniem.
Oprócz schematu parametrów schemat JSON pochodzi również z zwracanego typu metody i uwidacznianego za pośrednictwem zwracanego AIFunctionReturnJsonSchemaelementu . W przypadku metod zwracanych Voidprzez metody , Tasklub ValueTasknie jest generowany żaden schemat zwracany (właściwość to null). W przypadku metod zwracanych Task<TResult> lub ValueTask<TResult>schemat pochodzi z niezapisanego typu wyniku. Generowanie schematu zwracanego można wykluczyć za pomocą ExcludeResultSchemametody , a jego generowanie podlega optionsoperatorowi JsonSchemaCreateOptions.
Dotyczy
Create(MethodInfo, Func<AIFunctionArguments,Object>, AIFunctionFactoryOptions)
- Źródło:
- AIFunctionFactory.cs
AIFunction Tworzy wystąpienie metody określonej za pośrednictwem MethodInfo metody dla metody wystąpienia i klasy Func<T,TResult> do konstruowania wystąpienia obiektu odbiornika AIFunction za każdym razem, gdy jest wywoływany.
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
Parametry
- method
- MethodInfo
Metoda wystąpienia, która ma być reprezentowana za pośrednictwem utworzonego AIFunctionobiektu .
- createInstanceFunc
- Func<AIFunctionArguments,Object>
Wywołanie zwrotne używane w każdej wywołaniu funkcji w celu utworzenia wystąpienia typu, na którym zostanie wywołana metoda method wystąpienia. Jeśli zwrócone wystąpienie to IAsyncDisposable lub IDisposable, zostanie usunięte po method zakończeniu wywołania.
- options
- AIFunctionFactoryOptions
Metadane używane do zastępowania wartości domyślnych wywnioskowanych z elementu method.
Zwraca
AIFunction Utworzony do wywoływania methodelementu .
Wyjątki
Parametr createInstanceFunc ma wartość null.
method zawiera parametr bez nazwy parametru.
Parametr do method lub jego zwracany typ nie można serializować.
Uwagi
Wartości zwracane są serializowane do JsonElement używania optionsSerializerOptionselementu . Argumenty, które nie są jeszcze oczekiwanego typu, są marshalowane do oczekiwanego typu za pośrednictwem formatu JSON i przy użyciu optionsparametru SerializerOptions. Jeśli argument jest argumentem JsonElement, JsonDocumentlub JsonNode, jest deserializowany bezpośrednio. Jeśli argument jest nieznany, jest zaokrąglony przez kod JSON, serializując obiekt jako JSON, a następnie deserializacji go do oczekiwanego typu.
Domyślnie wszystkie parametry, które method mają być źródłowe ze AIFunctionArgumentssłownika par klucz/wartość i są reprezentowane w schemacie JSON dla funkcji, jak uwidocznione AIFunctionJsonSchemaw zwróconych parametrach . Istnieje kilka wyjątków od tego:
- CancellationToken parametry są automatycznie powiązane z CancellationToken przekazanym do wywołania za pomocą InvokeAsync(AIFunctionArguments, CancellationToken)parametru "s CancellationToken ". Parametr nie jest uwzględniony w wygenerowanych schematach JSON. Nie można zastąpić zachowania parametrów CancellationToken .
- Domyślnie IServiceProvider parametry są powiązane z właściwością Services i nie są uwzględniane w schemacie JSON. Jeśli parametr jest opcjonalny, taki, że podano wartość domyślną, Services może być
null; w przeciwnym razie musi być innyServices niżnulllub wywołanie zakończy się niepowodzeniem z wyjątkiem z powodu wymaganego charakteru parametru. Obsługę parametrów IServiceProvider można zastąpić za pomocą metody ConfigureParameterBinding. - Domyślnie AIFunctionArguments parametry są powiązane bezpośrednio z AIFunctionArguments wystąpieniem przekazanym do InvokeAsync(AIFunctionArguments, CancellationToken) i nie są uwzględniane w schemacie JSON.
AIFunctionArguments Jeśli przekazane wystąpienie InvokeAsync(AIFunctionArguments, CancellationToken) to
null, AIFunction implementacja generuje puste wystąpienie, tak aby parametry typu AIFunctionArguments zawsze mogły być spełnione, niezależnie od tego, czy jest to opcjonalne, czy nie. Obsługę parametrów AIFunctionArguments można zastąpić za pomocą metody ConfigureParameterBinding.
options . Dla każdego parametru delegat jest włączony, aby wybrać, czy parametr powinien być uwzględniony w wygenerowanym schemacie i jak jego wartość powinna być powiązana, w tym obsługa opcjonalnych (domyślnie wymagane parametry, które nie są uwzględnione w AIFunctionArguments słowniku, spowoduje zgłoszenie wyjątku). Luźno wpisywane dodatkowe informacje kontekstowe można przekazać za InvokeAsync(AIFunctionArguments, CancellationToken) pośrednictwem słownika AIFunctionArguments . Domyślne powiązanie ignoruje tę kolekcję, ale powiązanie niestandardowe dostarczone za pośrednictwem Context programu może wybrać argumenty źródłowe ConfigureParameterBindingz tych danych.Domyślne marshaling parametrów ze AIFunctionArguments słownika zezwala na przekazywanie wartości do methodwywołania bezpośrednio, jeśli obiekt jest już zgodnym typem. W przeciwnym razie, jeśli argument jest argumentem JsonElement, JsonDocumentlub JsonNode, jest deserializowany do typu parametru, używającSerializerOptions, jeśli podano, lub w inny sposób przy użyciu .DefaultOptions Jeśli argument jest czymkolwiek innym, jest zaokrąglony przez kod JSON, serializując obiekt jako JSON, a następnie deserializując go do oczekiwanego typu.
Ogólnie rzecz biorąc, dane dostarczane za pośrednictwem AIFunctionArgumentssłownika "s" są dostarczane z usługi sztucznej inteligencji i powinny być traktowane jako niezaufane i niezaufane. Aby dostarczyć zweryfikowane i zaufane dane do wywołania methodmetody , wystąpienie skonstruowane dla każdego wywołania może zawierać te dane, tak aby było dostępne method jako dane wystąpienia. Parametr IServiceProvider może również służyć do rozpoznawania usług z kontenera iniekcji zależności.
Domyślnie wartości zwracane są serializowane w celu JsonElement używania optionsparametrów "s SerializerOptions if provided" lub w inny sposób przy użyciu polecenia DefaultOptions. Jednak zwracane wartości, których zadeklarowany typ to AIContent, typ AIContentpochodny , lub dowolny typ, z IEnumerable<T> którego można przypisać, są zwracane bezpośrednio bez serializacji. Obsługa zwracanych wartości można zastąpić za pomocą metody MarshalResult.
Oprócz schematu parametrów schemat JSON pochodzi również z zwracanego typu metody i uwidacznianego za pośrednictwem zwracanego AIFunctionReturnJsonSchemaelementu . W przypadku metod zwracanych Voidprzez metody , Tasklub ValueTasknie jest generowany żaden schemat zwracany (właściwość to null). W przypadku metod zwracanych Task<TResult> lub ValueTask<TResult>schemat pochodzi z niezapisanego typu wyniku. Generowanie schematu zwracanego można wykluczyć za pomocą ExcludeResultSchemametody , a jego generowanie podlega optionsoperatorowi JsonSchemaCreateOptions.
Dotyczy
Create(MethodInfo, Object, AIFunctionFactoryOptions)
- Źródło:
- AIFunctionFactory.cs
AIFunction Tworzy wystąpienie metody określonej za pośrednictwem MethodInfo wystąpienia i opcjonalnego obiektu docelowego, jeśli metoda jest metodą wystąpienia.
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
Parametry
- method
- MethodInfo
Metoda, która ma być reprezentowana za pośrednictwem utworzonego AIFunctionelementu .
- target
- Object
Obiekt docelowy method obiektu , jeśli reprezentuje metodę wystąpienia.
Powinno to być null , jeśli i tylko wtedy, gdy method jest metodą statyczną.
- options
- AIFunctionFactoryOptions
Metadane używane do zastępowania wartości domyślnych wywnioskowanych z elementu method.
Zwraca
AIFunction Utworzony do wywoływania methodelementu .
Wyjątki
method reprezentuje metodę wystąpienia, ale target ma wartość null.
method zawiera parametr bez nazwy parametru.
Parametr do method lub jego zwracany typ nie można serializować.
Uwagi
Domyślnie wszystkie parametry, które method mają być źródłowe ze AIFunctionArgumentssłownika par klucz/wartość i są reprezentowane w schemacie JSON dla funkcji, jak uwidocznione AIFunctionJsonSchemaw zwróconych parametrach . Istnieje kilka wyjątków od tego:
- CancellationToken parametry są automatycznie powiązane z CancellationToken przekazanym do wywołania za pomocą InvokeAsync(AIFunctionArguments, CancellationToken)parametru "s CancellationToken ". Parametr nie jest uwzględniony w wygenerowanych schematach JSON. Nie można zastąpić zachowania parametrów CancellationToken .
- Domyślnie IServiceProvider parametry są powiązane z właściwością Services i nie są uwzględniane w schemacie JSON. Jeśli parametr jest opcjonalny, taki, że podano wartość domyślną, Services może być
null; w przeciwnym razie musi być innyServices niżnulllub wywołanie zakończy się niepowodzeniem z wyjątkiem z powodu wymaganego charakteru parametru. Obsługę parametrów IServiceProvider można zastąpić za pomocą metody ConfigureParameterBinding. - Domyślnie AIFunctionArguments parametry są powiązane bezpośrednio z AIFunctionArguments wystąpieniem przekazanym do InvokeAsync(AIFunctionArguments, CancellationToken) i nie są uwzględniane w schemacie JSON.
AIFunctionArguments Jeśli przekazane wystąpienie InvokeAsync(AIFunctionArguments, CancellationToken) to
null, AIFunction implementacja generuje puste wystąpienie, tak aby parametry typu AIFunctionArguments zawsze mogły być spełnione, niezależnie od tego, czy jest to opcjonalne, czy nie. Obsługę parametrów AIFunctionArguments można zastąpić za pomocą metody ConfigureParameterBinding.
options . Dla każdego parametru delegat jest włączony, aby wybrać, czy parametr powinien być uwzględniony w wygenerowanym schemacie i jak jego wartość powinna być powiązana, w tym obsługa opcjonalnych (domyślnie wymagane parametry, które nie są uwzględnione w AIFunctionArguments słowniku, spowoduje zgłoszenie wyjątku). Luźno wpisane dodatkowe informacje kontekstowe można przekazać za InvokeAsync(AIFunctionArguments, CancellationToken) pośrednictwem słownika AIFunctionArguments . Powiązanie domyślne ignoruje tę kolekcję, ale powiązanie niestandardowe dostarczone za pośrednictwem Context programu może wybrać argumenty źródłowe ConfigureParameterBindingz tych danych.Domyślne marshaling parametrów ze AIFunctionArguments słownika zezwala na przekazywanie wartości do methodwywołania bezpośrednio, jeśli obiekt jest już zgodnym typem. W przeciwnym razie, jeśli argument jest argumentem JsonElement, JsonDocumentlub JsonNode, jest deserializowany do typu parametru, używającSerializerOptions, jeśli podano, lub w inny sposób przy użyciu .DefaultOptions Jeśli argument jest czymkolwiek innym, jest zaokrąglony przez kod JSON, serializując obiekt jako JSON, a następnie deserializując go do oczekiwanego typu.
Ogólnie rzecz biorąc, dane dostarczane za pośrednictwem AIFunctionArgumentssłownika "s" są dostarczane z usługi sztucznej inteligencji i powinny być traktowane jako niezaufane i niezaufane. Aby dostarczyć zweryfikowane i zaufane dane do wywołania methodmetody , rozważ wskazanie method metody wystąpienia w wystąpieniu skonfigurowanym do przechowywania odpowiedniego stanu. Parametr IServiceProvider może również służyć do rozpoznawania usług z kontenera iniekcji zależności.
Domyślnie wartości zwracane są serializowane w celu JsonElement używania optionsparametrów "s SerializerOptions if provided" lub w inny sposób przy użyciu polecenia DefaultOptions. Jednak zwracane wartości, których zadeklarowany typ to AIContent, typ pochodny lub dowolny typ AIContent, z IEnumerable<T> którego można przypisać, nie są serializowane i są zwracane bezpośrednio. Obsługa zwracanych wartości można zastąpić za pomocą metody MarshalResult.
Oprócz schematu parametrów schemat JSON pochodzi również z zwracanego typu metody i uwidacznianego za pośrednictwem zwracanego AIFunctionReturnJsonSchemaelementu . W przypadku metod zwracanych Voidprzez metody , Tasklub ValueTasknie jest generowany żaden schemat zwracany (właściwość to null). W przypadku metod zwracanych Task<TResult> lub ValueTask<TResult>schemat pochodzi z niezapisanego typu wyniku. Generowanie schematu zwracanego można wykluczyć za pomocą ExcludeResultSchemametody , a jego generowanie podlega optionsoperatorowi JsonSchemaCreateOptions.
Dotyczy
Create(Delegate, String, String, JsonSerializerOptions)
- Źródło:
- AIFunctionFactory.cs
AIFunction Tworzy wystąpienie metody określonej za pośrednictwem delegata.
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
Parametry
- method
- Delegate
Metoda, która ma być reprezentowana za pośrednictwem utworzonego AIFunctionelementu .
- name
- String
Nazwa, która ma być używana dla elementu AIFunction. Jeśli nullnazwa będzie pochodzić z dowolnego elementu w AIFunctionNameAttributedniu , a następnie z dowolnego methodDisplayNameAttribute w methoddniu , jeśli jest dostępna, lub innego z nazwy method.
- description
- String
Opis do użycia dla elementu AIFunction. Jeśli nullwartość , opis będzie pochodzić z dowolnego DescriptionAttribute elementu w parametrze method, jeśli jest dostępny.
- serializerOptions
- JsonSerializerOptions
Służy JsonSerializerOptions do marshalingu parametrów funkcji i dowolnej wartości zwracanej.
Zwraca
AIFunction Utworzony do wywoływania methodelementu .
Wyjątki
Parametr method ma wartość null.
Parametr do method nie można serializować.
Uwagi
Wszystkie parametry do method są pozyskiwane ze AIFunctionArgumentssłownika par klucz/wartość i są reprezentowane w schemacie JSON dla funkcji, jak uwidocznione w zwracanych AIFunctionJsonSchemaparametrach . Istnieje kilka wyjątków od tego:
- CancellationToken parametry są automatycznie powiązane z CancellationToken przekazanym do wywołania za pomocą InvokeAsync(AIFunctionArguments, CancellationToken)parametru "s CancellationToken ". Parametr nie jest uwzględniony w wygenerowanych schematach JSON.
- Domyślnie IServiceProvider parametry są powiązane z właściwością Services i nie są uwzględniane w schemacie JSON. Jeśli parametr jest opcjonalny, taki, że podano wartość domyślną, Services może być
null; w przeciwnym razie musi być innyServices niżnulllub wywołanie zakończy się niepowodzeniem z wyjątkiem z powodu wymaganego charakteru parametru. - Domyślnie AIFunctionArguments parametry są powiązane bezpośrednio z AIFunctionArguments wystąpieniem przekazanym do InvokeAsync(AIFunctionArguments, CancellationToken) i nie są uwzględniane w schemacie JSON.
AIFunctionArguments Jeśli przekazane wystąpienie InvokeAsync(AIFunctionArguments, CancellationToken) to
null, AIFunction implementacja generuje puste wystąpienie, tak aby parametry typu AIFunctionArguments zawsze mogły być spełnione, niezależnie od tego, czy jest to opcjonalne, czy nie.
Marshaling parametrów ze AIFunctionArguments słownika zezwala na przekazywanie wartości do methodwywołania bezpośrednio, jeśli obiekt jest już zgodnym typem. W przeciwnym razie, jeśli argument jest argumentem , lub , jest deserializowany do typu parametru, używającJsonElement, jeśli podano, lub w przeciwnym razie JsonDocument.JsonNodeserializerOptionsDefaultOptions Jeśli argument jest czymkolwiek innym, jest zaokrąglony przez kod JSON, serializując obiekt jako JSON, a następnie deserializując go do oczekiwanego typu.
Ogólnie rzecz biorąc, dane dostarczane za pośrednictwem AIFunctionArgumentssłownika "s" są dostarczane z usługi sztucznej inteligencji i powinny być traktowane jako niezaufane i niezaufane. Aby dostarczyć zweryfikowane i zaufane dane do wywołania methodmetody , rozważ wskazanie method metody wystąpienia w wystąpieniu skonfigurowanym do przechowywania odpowiedniego stanu. Parametr IServiceProvider może również służyć do rozpoznawania usług z kontenera iniekcji zależności.
Wartości zwracane są serializowane do JsonElement użycia serializerOptions , jeśli podano, lub w innym przypadku przy użyciu metody DefaultOptions. Jednak zwracane wartości, których zadeklarowany typ to AIContent, typ pochodny lub dowolny typ AIContentprzypisywany z IEnumerable<T> nie są serializowane; są zwracane as-is w celu ułatwienia wyspecjalizowanej obsługi.
Schemat JSON pochodzi również z typu zwracanego metody i uwidacznianego za pośrednictwem metody ReturnJsonSchema. W przypadku metod zwracanych Voidprzez metodę , Tasklub ValueTasknie jest generowany żaden schemat zwracany. W przypadku metod zwracanych Task<TResult> lub ValueTask<TResult>schemat pochodzi z niezapisanego typu wyniku.
Dotyczy
Create(MethodInfo, Object, String, String, JsonSerializerOptions)
- Źródło:
- AIFunctionFactory.cs
AIFunction Tworzy wystąpienie metody określonej za pośrednictwem MethodInfo wystąpienia i opcjonalnego obiektu docelowego, jeśli metoda jest metodą wystąpienia.
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
Parametry
- method
- MethodInfo
Metoda, która ma być reprezentowana za pośrednictwem utworzonego AIFunctionelementu .
- target
- Object
Obiekt docelowy method obiektu , jeśli reprezentuje metodę wystąpienia.
Powinno to być null , jeśli i tylko wtedy, gdy method jest metodą statyczną.
- name
- String
Nazwa, która ma być używana dla elementu AIFunction. Jeśli nullnazwa będzie pochodzić z dowolnego elementu w AIFunctionNameAttributedniu , a następnie z dowolnego methodDisplayNameAttribute w methoddniu , jeśli jest dostępna, lub innego z nazwy method.
- description
- String
Opis do użycia dla elementu AIFunction. Jeśli nullwartość , opis będzie pochodzić z dowolnego DescriptionAttribute elementu w parametrze method, jeśli jest dostępny.
- serializerOptions
- JsonSerializerOptions
Służy JsonSerializerOptions do marshalingu parametrów funkcji i zwracanej wartości.
Zwraca
AIFunction Utworzony do wywoływania methodelementu .
Wyjątki
method reprezentuje metodę wystąpienia, ale target ma wartość null.
method zawiera parametr bez nazwy parametru.
Parametr do method lub jego zwracany typ nie można serializować.
Uwagi
Wszystkie parametry do method są pozyskiwane ze AIFunctionArgumentssłownika par klucz/wartość i są reprezentowane w schemacie JSON dla funkcji, jak uwidocznione w zwracanych AIFunctionJsonSchemaparametrach . Istnieje kilka wyjątków od tego:
- CancellationToken parametry są automatycznie powiązane z CancellationToken przekazanym do wywołania za pomocą InvokeAsync(AIFunctionArguments, CancellationToken)parametru "s CancellationToken ". Parametr nie jest uwzględniony w wygenerowanych schematach JSON.
- Domyślnie IServiceProvider parametry są powiązane z właściwością Services i nie są uwzględniane w schemacie JSON. Jeśli parametr jest opcjonalny, taki, że podano wartość domyślną, Services może być
null; w przeciwnym razie musi być innyServices niżnulllub wywołanie zakończy się niepowodzeniem z wyjątkiem z powodu wymaganego charakteru parametru. - Domyślnie AIFunctionArguments parametry są powiązane bezpośrednio z AIFunctionArguments wystąpieniem przekazanym do InvokeAsync(AIFunctionArguments, CancellationToken) i nie są uwzględniane w schemacie JSON.
AIFunctionArguments Jeśli przekazane wystąpienie InvokeAsync(AIFunctionArguments, CancellationToken) to
null, AIFunction implementacja generuje puste wystąpienie, tak aby parametry typu AIFunctionArguments zawsze mogły być spełnione, niezależnie od tego, czy jest to opcjonalne, czy nie.
Marshaling parametrów ze AIFunctionArguments słownika zezwala na przekazywanie wartości do methodwywołania bezpośrednio, jeśli obiekt jest już zgodnym typem. W przeciwnym razie, jeśli argument jest argumentem , lub , jest deserializowany do typu parametru, używającJsonElement, jeśli podano, lub w przeciwnym razie JsonDocument.JsonNodeserializerOptionsDefaultOptions Jeśli argument jest czymkolwiek innym, jest zaokrąglony przez kod JSON, serializując obiekt jako JSON, a następnie deserializując go do oczekiwanego typu.
Ogólnie rzecz biorąc, dane dostarczane za pośrednictwem AIFunctionArgumentssłownika "s" są dostarczane z usługi sztucznej inteligencji i powinny być traktowane jako niezaufane i niezaufane. Aby dostarczyć zweryfikowane i zaufane dane do wywołania methodmetody , rozważ wskazanie method metody wystąpienia w wystąpieniu skonfigurowanym do przechowywania odpowiedniego stanu. Parametr IServiceProvider może również służyć do rozpoznawania usług z kontenera iniekcji zależności.
Wartości zwracane są serializowane do JsonElement użycia serializerOptions , jeśli podano, lub w innym przypadku przy użyciu metody DefaultOptions. Jednak zwracane wartości, których zadeklarowany typ to AIContent, typ pochodny lub dowolny typ AIContentprzypisywany z IEnumerable<T> są zwracane bez serializacji, aby umożliwić wyspecjalizowaną obsługę.
Schemat JSON pochodzi również z typu zwracanego metody i uwidacznianego za pośrednictwem metody ReturnJsonSchema. W przypadku metod zwracanych Voidprzez metodę , Tasklub ValueTasknie jest generowany żaden schemat zwracany. W przypadku metod zwracanych Task<TResult> lub ValueTask<TResult>schemat pochodzi z niezapisanego typu wyniku.