Поделиться через


FunctionInvokingChatClient Класс

Определение

Делегированный клиент чата, вызывающий функции, определенные в ChatOptions. Включите это в конвейер чата для автоматического разрешения вызовов функций.

public ref class FunctionInvokingChatClient : Microsoft::Extensions::AI::DelegatingChatClient
public class FunctionInvokingChatClient : Microsoft.Extensions.AI.DelegatingChatClient
type FunctionInvokingChatClient = class
    inherit DelegatingChatClient
Public Class FunctionInvokingChatClient
Inherits DelegatingChatClient
Наследование
FunctionInvokingChatClient

Комментарии

Когда этот клиент получает FunctionCallContent ответ в чате от своего внутреннего, он отвечает, вызывая соответствующий AIFunction определенный (Toolsили вAdditionalTools), создавFunctionResultContent, что он отправляет обратно внутреннему IChatClientклиенту. Этот цикл повторяется до тех пор, пока не будет больше вызовов функций, или до тех пор, пока не будет выполнено другое условие остановки, например удар MaximumIterationsPerRequest.

Если запрошенная функция является, но не AIFunctionFunctionInvokingChatClient являетсяAIFunctionDeclaration, она не попытается вызвать ее, и вместо этого позволить, чтобы FunctionCallContent вернуться обратно вызывающему объекту. Затем вызывающий отвечает за создание соответствующего FunctionResultContent вызова и отправку его обратно в рамках последующего запроса.

Кроме того, если запрошенная функция является ApprovalRequiredAIFunctionфункцией, FunctionInvokingChatClient она не попытается вызвать ее напрямую. Вместо этого он заменит это FunctionCallContentToolApprovalRequestContentFunctionCallContent оболочкой и указывает, что функция требует утверждения, прежде чем ее можно вызвать. Затем вызывающий объект отвечает за реагирование на запрос на утверждение, отправив соответствующий ToolApprovalResponseContent запрос в последующий запрос. Затем FunctionInvokingChatClient он обработает ответ утверждения и вызовет функцию соответствующим образом.

В связи с характером взаимодействия с базовой IChatClientфункцией, требующей FunctionCallContent утверждения, все полученные FunctionCallContent в том же ответе также потребуют утверждения, даже если они не ApprovalRequiredAIFunction были экземплярами. Если это проблема, попробуйте запросить, чтобы несколько запросов на вызовы инструментов не выполнялись в одном ответе, задав значение AllowMultipleToolCallsfalse.

Экземпляр FunctionInvokingChatClient является потокобезопасным для параллельного использования, пока AIFunction экземпляры, используемые в составе предоставленного, ChatOptions также безопасны. Свойство AllowConcurrentInvocation можно использовать для управления тем, могут ли несколько запросов вызовов функций в рамках одного запроса одновременно быть неизменяемыми, но даже если false задано значение (по умолчанию), несколько одновременных запросов к этому экземпляру и использование одних и тех же средств могут привести к одновременному использованию этих средств (по одному на запрос). Например, функция, которая обращается к HttpContext определенного веб-запроса ASP.NET, должна использоваться только в рамках одного ChatOptions за раз и только с AllowConcurrentInvocation заданным значением false, если внутренний клиент решил выдавать несколько запросов на вызов к той же функции.

Конструкторы

Имя Описание
FunctionInvokingChatClient(IChatClient, ILoggerFactory, IServiceProvider)

Инициализирует новый экземпляр класса FunctionInvokingChatClient.

Свойства

Имя Описание
AdditionalTools

Возвращает или задает коллекцию дополнительных средств, которые клиент может вызвать.

AllowConcurrentInvocation

Возвращает или задает значение, указывающее, разрешать ли одновременный вызов функций.

CurrentContext

Возвращает или задает FunctionInvocationContext вызов текущей функции.

FunctionInvocationServices

Возвращает указанный IServiceProvider при создании , если таковой FunctionInvokingChatClientесть.

FunctionInvoker

Возвращает или задает делегат, используемый для вызова AIFunction экземпляров.

IncludeDetailedErrors

Возвращает или задает значение, указывающее, следует ли включать подробные сведения об исключении в журнал чата при вызове базового IChatClient.

InnerClient

Возвращает внутренний IChatClient.

(Унаследовано от DelegatingChatClient)
MaximumConsecutiveErrorsPerRequest

Возвращает или задает максимальное число последовательных итераций, которые могут завершиться ошибкой.

MaximumIterationsPerRequest

Возвращает или задает максимальное количество итераций на запрос.

TerminateOnUnknownCalls

Возвращает или задает значение, указывающее, должен ли запрос на вызов неизвестной функции завершить цикл вызова функции.

Методы

Имя Описание
CreateResponseMessages(ReadOnlySpan<FunctionInvokingChatClient.FunctionInvocationResult>)

Создает одно или несколько сообщений ответа для результатов вызова функции.

Dispose()

Выполняет определяемые приложением задачи, связанные с освобождением, освобождением или сбросом неуправляемых ресурсов.

(Унаследовано от DelegatingChatClient)
Dispose(Boolean)

Предоставляет механизм освобождения неуправляемых ресурсов.

(Унаследовано от DelegatingChatClient)
GetResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken)

Отправляет сообщения чата и возвращает ответ.

GetService(Type, Object)

Запрашивает IChatClient объект указанного типа serviceType.

(Унаследовано от DelegatingChatClient)
GetStreamingResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken)

Отправляет сообщения чата и передает ответ.

InvokeFunctionAsync(FunctionInvocationContext, CancellationToken)

Этот метод вызовет функцию в блоке try.

Методы расширения

Имя Описание
AsBuilder(IChatClient)

Создает новое ChatClientBuilder использование innerClient в качестве внутреннего клиента.

GetRequiredService(IChatClient, Type, Object)

Запрашивает IChatClient объект указанного типа serviceType и создает исключение, если он недоступен.

GetRequiredService<TService>(IChatClient, Object)

Запрашивает IChatClient объект типа TService и создает исключение, если он недоступен.

GetResponseAsync(IChatClient, ChatMessage, ChatOptions, CancellationToken)

Отправляет сообщение чата и возвращает ответные сообщения.

GetResponseAsync(IChatClient, String, ChatOptions, CancellationToken)

Отправляет текстовое сообщение чата пользователя и возвращает ответные сообщения.

GetResponseAsync<T>(IChatClient, ChatMessage, ChatOptions, Nullable<Boolean>, CancellationToken)

Отправляет сообщение чата, запрашивая ответ, соответствующий типу T.

GetResponseAsync<T>(IChatClient, ChatMessage, JsonSerializerOptions, ChatOptions, Nullable<Boolean>, CancellationToken)

Отправляет сообщение чата, запрашивая ответ, соответствующий типу T.

GetResponseAsync<T>(IChatClient, IEnumerable<ChatMessage>, ChatOptions, Nullable<Boolean>, CancellationToken)

Отправляет сообщения чата, запрашивая ответ, соответствующий типу T.

GetResponseAsync<T>(IChatClient, IEnumerable<ChatMessage>, JsonSerializerOptions, ChatOptions, Nullable<Boolean>, CancellationToken)

Отправляет сообщения чата, запрашивая ответ, соответствующий типу T.

GetResponseAsync<T>(IChatClient, String, ChatOptions, Nullable<Boolean>, CancellationToken)

Отправляет текстовое сообщение чата пользователя, запрашивая ответ, соответствующий типу T.

GetResponseAsync<T>(IChatClient, String, JsonSerializerOptions, ChatOptions, Nullable<Boolean>, CancellationToken)

Отправляет текстовое сообщение чата пользователя, запрашивая ответ, соответствующий типу T.

GetService<TService>(IChatClient, Object)

Запрашивает IChatClient объект типа TService.

GetStreamingResponseAsync(IChatClient, ChatMessage, ChatOptions, CancellationToken)

Отправляет сообщение чата и передает ответные сообщения.

GetStreamingResponseAsync(IChatClient, String, ChatOptions, CancellationToken)

Отправляет текстовое сообщение чата пользователя и передает ответные сообщения.

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