FunctionInvokingChatClient 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
에 정의된 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 내부IChatClient로부터 채팅 응답에서 수신하면 내부 클라이언트로 다시 전송되는 해당(또는 AdditionalTools내부)에 정의된 Tools 해당 AIFunction 클라이언트를 호출하여 FunctionResultContent 응답합니다. 이 루프는 수행할 함수 호출이 더 이상 없거나 타격 MaximumIterationsPerRequest과 같은 다른 중지 조건이 충족될 때까지 반복됩니다.
요청된 함수가 아닌 AIFunctionFunctionInvokingChatClient 함수인 AIFunctionDeclaration 경우 호출을 시도하지 않고 대신 호출자에게 다시 전달하도록 허용 FunctionCallContent 합니다. 그런 다음 해당 호출에 적합한 FunctionResultContent 호출을 만들고 후속 요청의 일부로 다시 보내는 것은 호출자의 책임입니다.
또한 요청된 함수가 있는 ApprovalRequiredAIFunctionFunctionInvokingChatClient 경우 직접 호출을 시도하지 않습니다. 대신, 함수 FunctionCallContentToolApprovalRequestContent 를 래핑 FunctionCallContent 하고 함수를 호출하기 전에 승인이 필요하다는 것을 나타내는 것으로 바꿉니다. 그런 다음 호출자는 후속 요청에서 해당 ToolApprovalResponseContent 요청을 전송하여 해당 승인 요청에 응답할 책임이 있습니다. FunctionInvokingChatClient 그러면 승인 응답을 처리하고 함수를 적절하게 호출합니다.
기본 IChatClient상호 작용의 특성으로 인해 승인이 필요한 함수에 대해 수신된 경우 FunctionCallContent 동일한 응답에서 수신된 FunctionCallContent 모든 항목은 인스턴스가 아니 ApprovalRequiredAIFunction 더라도 승인이 필요합니다. 이 문제가 있는 경우 단일 응답에서 여러 도구 호출 요청을 수행하지 않도록 설정하는 AllowMultipleToolCalls 것이 좋습니다 false.
FunctionInvokingChatClient 제공된 ChatOptions 인스턴스의 일부로 사용하는 인스턴스도 안전한 경우 AIFunction 인스턴스는 동시 사용을 위해 스레드로부터 안전합니다. 이 AllowConcurrentInvocation 속성을 사용하여 동일한 요청의 일부로 여러 함수 호출 요청을 동시에 호출할 수 있는지 여부를 제어할 수 있지만, 이 요청이 (기본값)으로 설정된 경우에도 이 동일한 인스턴스에 false 대한 여러 동시 요청과 동일한 도구를 사용하면 이러한 도구가 동시에 사용될 수 있습니다(요청당 하나씩). 예를 들어 특정 ASP.NET 웹 요청의 HttpContext에 액세스하는 함수는 한 번에 하나의 ChatOptions 일부로만 사용해야 하며 AllowConcurrentInvocation , 내부 클라이언트가 동일한 함수에 여러 호출 요청을 실행하기로 결정한 경우에만 이 함수로 설정 false해야 합니다.
생성자
| Name | Description |
|---|---|
| FunctionInvokingChatClient(IChatClient, ILoggerFactory, IServiceProvider) |
FunctionInvokingChatClient 클래스의 새 인스턴스를 초기화합니다. |
속성
| Name | Description |
|---|---|
| AdditionalTools |
클라이언트가 호출할 수 있는 추가 도구의 컬렉션을 가져오거나 설정합니다. |
| AllowConcurrentInvocation |
함수의 동시 호출을 허용할지 여부를 나타내는 값을 가져오거나 설정합니다. |
| CurrentContext |
현재 함수 호출에 FunctionInvocationContext 대한 값을 가져오거나 설정합니다. |
| FunctionInvocationServices |
IServiceProvider(있는 경우)를 생성할 FunctionInvokingChatClient때 지정된 값을 가져옵니다. |
| FunctionInvoker |
인스턴스를 호출하는 데 사용되는 대리자를 AIFunction 가져오거나 설정합니다. |
| IncludeDetailedErrors |
기본 IChatClient을 호출할 때 자세한 예외 정보를 채팅 기록에 포함할지 여부를 나타내는 값을 가져오거나 설정합니다. |
| InnerClient |
내부 IChatClient를 가져옵니다. (다음에서 상속됨 DelegatingChatClient) |
| MaximumConsecutiveErrorsPerRequest |
오류와 함께 실패할 수 있는 연속 반복의 최대 수를 가져오거나 설정합니다. |
| MaximumIterationsPerRequest |
요청당 최대 반복 수를 가져오거나 설정합니다. |
| TerminateOnUnknownCalls |
알 수 없는 함수를 호출하는 요청이 함수 호출 루프를 종료해야 하는지 여부를 나타내는 값을 가져오거나 설정합니다. |
메서드
| Name | Description |
|---|---|
| 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 블록 내에서 함수를 호출합니다. |