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
- Наследование
Комментарии
Когда этот клиент получает 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 объект указанного типа |
| GetStreamingResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken) |
Отправляет сообщения чата и передает ответ. |
| InvokeFunctionAsync(FunctionInvocationContext, CancellationToken) |
Этот метод вызовет функцию в блоке try. |