AIFunctionFactory.Create Метод

Определение

Перегрузки

Имя Описание
Create(Delegate, AIFunctionFactoryOptions)

AIFunction Создает экземпляр для метода, указанного с помощью делегата.

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

AIFunction Создает экземпляр для метода, указанного с помощью MethodInfo метода экземпляра и Func<T,TResult> создания экземпляра объекта-получателя при AIFunction каждом вызове.

Create(MethodInfo, Object, AIFunctionFactoryOptions)

AIFunction Создает экземпляр для метода, указанный с помощью MethodInfo экземпляра и необязательный целевой объект, если метод является методом экземпляра.

Create(Delegate, String, String, JsonSerializerOptions)

AIFunction Создает экземпляр для метода, указанного с помощью делегата.

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

AIFunction Создает экземпляр для метода, указанный с помощью MethodInfo экземпляра и необязательный целевой объект, если метод является методом экземпляра.

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.

Возвращаемое значение

Созданный AIFunction для вызова method.

Исключения

method равно null.

Параметр, который не method может быть сериализуемым.

Комментарии

По умолчанию все параметры, которые необходимо method получить из AIFunctionArgumentsсловаря пар "ключ-значение" и представлены в схеме JSON для функции, как показано в возвращаемых AIFunctionпарах JsonSchema. Ниже приведены некоторые исключения.

Все остальные типы параметров по умолчанию привязаны из словаря, переданного AIFunctionArgumentsInvokeAsync(AIFunctionArguments, CancellationToken) и включены в созданную схему JSON. Это может быть переопределено ConfigureParameterBinding предоставленным options параметром. Для каждого параметра делегат может выбрать, должен ли параметр быть включен в созданную схему и как его значение должно быть привязано, включая обработку необязательных значений (по умолчанию обязательные параметры, не включенные AIFunctionArguments в словарь, будут вызывать исключение). Свободно типизированные дополнительные сведения о контексте можно передать InvokeAsync(AIFunctionArguments, CancellationToken) через AIFunctionArgumentsContext словарь по умолчанию. Привязка по умолчанию игнорирует эту коллекцию, но пользовательская привязка, предоставляемая через ConfigureParameterBinding выбор источника аргументов из этих данных.

Маршалинг параметров по умолчанию из AIFunctionArguments словаря позволяет передавать значения непосредственно в methodвызов, если объект уже совместимого типа. В противном случае, если аргумент является аргументом JsonElementили JsonNodeJsonDocumentдесериализирован в тип параметра, используется SerializerOptions при условии или используется.DefaultOptions Если аргумент является чем-либо другим, он циклический споткнут через JSON, сериализуя объект как JSON, а затем десериализацию его до ожидаемого типа.

Как правило, данные, предоставленные через словарь, предоставляются из AIFunctionArgumentsслужбы ИИ и должны считаться ненадежными и ненадежными. Чтобы предоставить проверенные и доверенные данные вызову method, рассмотрите method возможность указания метода экземпляра на экземпляре, настроенного для хранения соответствующего состояния. Параметр IServiceProvider также можно использовать для разрешения служб из контейнера внедрения зависимостей.

По умолчанию возвращаемые значения сериализуются для JsonElement использования , optionsSerializerOptions если они указаны или используютсяDefaultOptions. Однако возвращаемые значения, объявленные типом AIContentкоторых являются, производный тип AIContentили любой тип, назначаемый из IEnumerable<T> (например AIContent[], List<AIContent>) специально регистрируются и не сериализуются: созданная функция возвращает исходные экземпляры напрямую, чтобы включить вызывающие объекты (например IChatClient, ) для выполнения тестов типов и реализации специализированной обработки. Если MarshalResult задано, этот делегат управляет поведением.

Помимо схемы параметров, схема JSON также является производным от возвращаемого типа метода и предоставляется с помощью возвращаемого AIFunctionзначения ReturnJsonSchema. Для методов, возвращающих , Taskили ValueTaskнет возвращаемой Voidсхемы (свойство равноnull). Для методов, возвращающих Task<TResult> или ValueTask<TResult>, схема является производным от раскрытого типа результата. Создание возвращаемой схемы можно исключить с помощью ExcludeResultSchema, и его создание регулируется с помощью options's JsonSchemaCreateOptions.

Применяется к

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

Исходный код:
AIFunctionFactory.cs

AIFunction Создает экземпляр для метода, указанного с помощью MethodInfo метода экземпляра и 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 экземпляра. Если возвращенный экземпляр или IAsyncDisposableIDisposableон будет удален после method завершения его вызова.

options
AIFunctionFactoryOptions

Метаданные, используемые для переопределения значений по умолчанию, полученных из method.

Возвращаемое значение

Созданный AIFunction для вызова method.

Исключения

createInstanceFunc равно null.

method содержит параметр без имени параметра.

Параметр или method тип возвращаемого значения не сериализуется.

Комментарии

Возвращаемые значения сериализуются для JsonElement использования .optionsSerializerOptions Аргументы, которые еще не относятся к ожидаемому типу, маршалируются в ожидаемый тип через JSON и используются optionsSerializerOptions. Если аргумент является аргументом JsonElement, JsonDocumentили JsonNodeон десериализирован напрямую. Если аргумент является любым другим неизвестным, он выполняет циклический споток через JSON, сериализуя объект как JSON, а затем десериализацию его до ожидаемого типа.

По умолчанию все параметры, которые необходимо method получить из AIFunctionArgumentsсловаря пар "ключ-значение" и представлены в схеме JSON для функции, как показано в возвращаемых AIFunctionпарах JsonSchema. Ниже приведены некоторые исключения.

Все остальные типы параметров по умолчанию привязаны из словаря, переданного AIFunctionArgumentsInvokeAsync(AIFunctionArguments, CancellationToken) и включены в созданную схему JSON. Это может быть переопределено ConfigureParameterBinding предоставленным options параметром. Для каждого параметра делегат может выбрать, должен ли параметр быть включен в созданную схему и как его значение должно быть привязано, включая обработку необязательных значений (по умолчанию обязательные параметры, не включенные AIFunctionArguments в словарь, будут вызывать исключение). Свободно типизированные дополнительные сведения о контексте можно передать InvokeAsync(AIFunctionArguments, CancellationToken) через AIFunctionArgumentsContext словарь по умолчанию. Привязка по умолчанию игнорирует эту коллекцию, но пользовательская привязка, предоставляемая через ConfigureParameterBinding выбор источника аргументов из этих данных.

Маршалинг параметров по умолчанию из AIFunctionArguments словаря позволяет передавать значения непосредственно в methodвызов, если объект уже совместимого типа. В противном случае, если аргумент является аргументом JsonElementили JsonNodeJsonDocumentдесериализирован в тип параметра, используется SerializerOptions при условии или используется.DefaultOptions Если аргумент является чем-либо другим, он циклический споткнут через JSON, сериализуя объект как JSON, а затем десериализацию его до ожидаемого типа.

Как правило, данные, предоставленные через словарь, предоставляются из AIFunctionArgumentsслужбы ИИ и должны считаться ненадежными и ненадежными. Чтобы предоставить проверенные и доверенные данные вызову method, экземпляр, созданный для каждого вызова, может содержать эти данные в нем, таким образом, чтобы он был доступен в method качестве данных экземпляра. Параметр IServiceProvider также можно использовать для разрешения служб из контейнера внедрения зависимостей.

По умолчанию возвращаемые значения сериализуются для JsonElement использования , optionsSerializerOptions если они указаны или используютсяDefaultOptions. Однако возвращаемые значения, объявленные типом AIContentкоторых являются, производный тип AIContentили любой тип, из которого можно IEnumerable<T> назначить, возвращаются напрямую без сериализации. Обработку возвращаемых значений можно переопределить с помощью MarshalResult.

Помимо схемы параметров, схема JSON также является производным от возвращаемого типа метода и предоставляется с помощью возвращаемого AIFunctionзначения ReturnJsonSchema. Для методов, возвращающих , Taskили ValueTaskнет возвращаемой Voidсхемы (свойство равноnull). Для методов, возвращающих Task<TResult> или ValueTask<TResult>, схема является производным от раскрытого типа результата. Создание возвращаемой схемы можно исключить с помощью ExcludeResultSchema, и его создание регулируется с помощью options's JsonSchemaCreateOptions.

Применяется к

Create(MethodInfo, Object, AIFunctionFactoryOptions)

Исходный код:
AIFunctionFactory.cs

AIFunction Создает экземпляр для метода, указанный с помощью MethodInfo экземпляра и необязательный целевой объект, если метод является методом экземпляра.

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 объекта, представляющего метод экземпляра. Это должно быть null , только если method является статическим методом.

options
AIFunctionFactoryOptions

Метаданные, используемые для переопределения значений по умолчанию, полученных из method.

Возвращаемое значение

Созданный AIFunction для вызова method.

Исключения

method представляет метод экземпляра, но target имеет значение NULL.

method содержит параметр без имени параметра.

Параметр или method тип возвращаемого значения не сериализуется.

Комментарии

По умолчанию все параметры, которые необходимо method получить из AIFunctionArgumentsсловаря пар "ключ-значение" и представлены в схеме JSON для функции, как показано в возвращаемых AIFunctionпарах JsonSchema. Ниже приведены некоторые исключения.

Все остальные типы параметров по умолчанию привязаны из словаря, переданного AIFunctionArgumentsInvokeAsync(AIFunctionArguments, CancellationToken) и включены в созданную схему JSON. Это может быть переопределено ConfigureParameterBinding предоставленным options параметром. Для каждого параметра делегат может выбрать, должен ли параметр быть включен в созданную схему и как его значение должно быть привязано, включая обработку необязательных значений (по умолчанию обязательные параметры, не включенные AIFunctionArguments в словарь, будут вызывать исключение). Свободно типизированные дополнительные сведения о контексте можно передать InvokeAsync(AIFunctionArguments, CancellationToken) через AIFunctionArgumentsContext словарь. Привязка по умолчанию игнорирует эту коллекцию, но пользовательская привязка, предоставленная через ConfigureParameterBinding выбор источника аргументов из этих данных.

Маршалинг параметров по умолчанию из AIFunctionArguments словаря позволяет передавать значения непосредственно в methodвызов, если объект уже совместимого типа. В противном случае, если аргумент является аргументом JsonElementили JsonNodeJsonDocumentдесериализирован в тип параметра, используется SerializerOptions при условии или используется.DefaultOptions Если аргумент является чем-либо другим, он циклический споткнут через JSON, сериализуя объект как JSON, а затем десериализацию его до ожидаемого типа.

Как правило, данные, предоставленные через словарь, предоставляются из AIFunctionArgumentsслужбы ИИ и должны считаться ненадежными и ненадежными. Чтобы предоставить проверенные и доверенные данные вызову method, рассмотрите method возможность указания метода экземпляра на экземпляре, настроенного для хранения соответствующего состояния. Параметр IServiceProvider также можно использовать для разрешения служб из контейнера внедрения зависимостей.

По умолчанию возвращаемые значения сериализуются для JsonElement использования , optionsSerializerOptions если они указаны или используютсяDefaultOptions. Однако возвращаемые значения, объявленные типом которых являются AIContent, производный тип AIContentили любой тип, из которого можно IEnumerable<T> назначить, не сериализуются и возвращаются напрямую. Обработку возвращаемых значений можно переопределить с помощью MarshalResult.

Помимо схемы параметров, схема JSON также является производным от возвращаемого типа метода и предоставляется с помощью возвращаемого AIFunctionзначения ReturnJsonSchema. Для методов, возвращающих , Taskили ValueTaskнет возвращаемой Voidсхемы (свойство равноnull). Для методов, возвращающих Task<TResult> или ValueTask<TResult>, схема является производным от раскрытого типа результата. Создание возвращаемой схемы можно исключить с помощью ExcludeResultSchema, и его создание регулируется с помощью options's JsonSchemaCreateOptions.

Применяется к

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имя будет производным от любого DisplayNameAttributemethodэлемента , если оно доступно, или другое из имени method.

description
String

Описание, используемое AIFunctionдля объекта . Если nullэто описание будет производным от любого DescriptionAttributemethod, если оно доступно.

serializerOptions
JsonSerializerOptions

Используется JsonSerializerOptions для маршалирования параметров функции и любого возвращаемого значения.

Возвращаемое значение

Созданный AIFunction для вызова method.

Исключения

method равно null.

Параметр, который не method может быть сериализуемым.

Комментарии

Все параметры, которые нужно method получить из AIFunctionArgumentsсловаря пар "ключ-значение", и представлены в схеме JSON для функции, как показано в возвращаемых AIFunction" JsonSchema. Ниже приведены некоторые исключения.

Все остальные типы параметров привязаны из словаря, переданного AIFunctionArgumentsInvokeAsync(AIFunctionArguments, CancellationToken) в и включаются в созданную схему JSON.

Маршалинг параметров из AIFunctionArguments словаря позволяет передавать значения непосредственно в methodвызов, если объект уже имеет совместимый тип. В противном случае, если аргумент является аргументом JsonElementили JsonNodeJsonDocumentдесериализируется в тип параметра, который используется serializerOptions при указании или в противном случаеDefaultOptions. Если аргумент является чем-либо другим, он циклический споткнут через JSON, сериализуя объект как JSON, а затем десериализацию его до ожидаемого типа.

Как правило, данные, предоставленные через словарь, предоставляются из AIFunctionArgumentsслужбы ИИ и должны считаться ненадежными и ненадежными. Чтобы предоставить проверенные и доверенные данные вызову method, рассмотрите method возможность указания метода экземпляра на экземпляре, настроенного для хранения соответствующего состояния. Параметр IServiceProvider также можно использовать для разрешения служб из контейнера внедрения зависимостей.

Возвращаемые значения сериализуются для JsonElement использования serializerOptions , если они указаны или используются DefaultOptions. Однако возвращаемые значения, объявленные типом AIContentкоторых являются, производный тип AIContentили любой назначаемый IEnumerable<T> тип не сериализуются; они возвращаются as-is для упрощения специализированной обработки.

Схема JSON также является производным от возвращаемого типа метода и предоставляется с помощью ReturnJsonSchema. Для методов, возвращающих или ValueTaskне вызывая VoidTaskвозвращаемую схему, не создается. Для методов, возвращающих Task<TResult> или ValueTask<TResult>, схема является производным от раскрытого типа результата.

Применяется к

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

Исходный код:
AIFunctionFactory.cs

AIFunction Создает экземпляр для метода, указанный с помощью MethodInfo экземпляра и необязательный целевой объект, если метод является методом экземпляра.

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 объекта, представляющего метод экземпляра. Это должно быть null , только если method является статическим методом.

name
String

Имя, используемое AIFunctionдля объекта . Если nullимя будет производным от любого DisplayNameAttributemethodэлемента , если оно доступно, или другое из имени method.

description
String

Описание, используемое AIFunctionдля объекта . Если nullэто описание будет производным от любого DescriptionAttributemethod, если оно доступно.

serializerOptions
JsonSerializerOptions

Используется JsonSerializerOptions для маршалирования параметров функции и возвращаемого значения.

Возвращаемое значение

Созданный AIFunction для вызова method.

Исключения

method представляет метод экземпляра, но target имеет значение NULL.

method содержит параметр без имени параметра.

Параметр или method тип возвращаемого значения не сериализуется.

Комментарии

Все параметры, которые нужно method получить из AIFunctionArgumentsсловаря пар "ключ-значение", и представлены в схеме JSON для функции, как показано в возвращаемых AIFunction" JsonSchema. Ниже приведены некоторые исключения.

Все остальные типы параметров привязаны из словаря, переданного AIFunctionArgumentsInvokeAsync(AIFunctionArguments, CancellationToken) в и включаются в созданную схему JSON.

Маршалинг параметров из AIFunctionArguments словаря позволяет передавать значения непосредственно в methodвызов, если объект уже имеет совместимый тип. В противном случае, если аргумент является аргументом JsonElementили JsonNodeJsonDocumentдесериализируется в тип параметра, который используется serializerOptions при указании или в противном случаеDefaultOptions. Если аргумент является чем-либо другим, он циклический споткнут через JSON, сериализуя объект как JSON, а затем десериализацию его до ожидаемого типа.

Как правило, данные, предоставленные через словарь, предоставляются из AIFunctionArgumentsслужбы ИИ и должны считаться ненадежными и ненадежными. Чтобы предоставить проверенные и доверенные данные вызову method, рассмотрите method возможность указания метода экземпляра на экземпляре, настроенного для хранения соответствующего состояния. Параметр IServiceProvider также можно использовать для разрешения служб из контейнера внедрения зависимостей.

Возвращаемые значения сериализуются для JsonElement использования serializerOptions , если они указаны или используются DefaultOptions. Однако возвращаемые значения, объявленные типом AIContentкоторых являются, производный тип AIContentили любой тип, из которого можно назначить, IEnumerable<T> возвращаются без сериализации для включения специализированной обработки.

Схема JSON также является производным от возвращаемого типа метода и предоставляется с помощью ReturnJsonSchema. Для методов, возвращающих или ValueTaskне вызывая VoidTaskвозвращаемую схему, не создается. Для методов, возвращающих Task<TResult> или ValueTask<TResult>, схема является производным от раскрытого типа результата.

Применяется к