Udostępnij za pośrednictwem


FunctionInvokingChatClient Klasa

Definicja

Delegowanie klienta czatu, który wywołuje funkcje zdefiniowane na .ChatOptions Uwzględnij to w potoku czatu, aby automatycznie rozpoznawać wywołania funkcji.

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
Dziedziczenie
FunctionInvokingChatClient

Uwagi

Gdy ten klient otrzyma element FunctionCallContent w odpowiedzi czatu z jego wewnętrznego IChatClientelementu , odpowiada przez wywołanie odpowiedniego AIFunction zdefiniowanego elementu Tools (lub w AdditionalTools), tworząc element FunctionResultContent , który wysyła z powrotem do klienta wewnętrznego. Ta pętla jest powtarzana do momentu, gdy nie ma więcej wywołań funkcji do wykonania lub do momentu spełnienia innego warunku zatrzymania, takiego jak naciśnięcie klawisza MaximumIterationsPerRequest.

Jeśli żądana funkcja jest AIFunctionDeclaration funkcją AIFunction, ale nie , FunctionInvokingChatClient nie podejmie próby wywołania tej funkcji i zamiast tego zezwoli na FunctionCallContent przekazanie jej z powrotem do wywołującego. Wówczas obiekt wywołujący odpowiada za utworzenie odpowiedniego FunctionResultContent dla tego wywołania i wysłanie go z powrotem w ramach kolejnego żądania.

Ponadto jeśli żądana funkcja jest funkcją ApprovalRequiredAIFunction, FunctionInvokingChatClient element nie będzie próbował wywołać go bezpośrednio. Zamiast tego zastąpi ją FunctionCallContent elementem ToolApprovalRequestContent , który opakowuje FunctionCallContent element i wskazuje, że funkcja wymaga zatwierdzenia, zanim będzie można ją wywołać. Obiekt wywołujący jest następnie odpowiedzialny za odpowiadanie na to żądanie zatwierdzenia przez wysłanie odpowiedniego ToolApprovalResponseContent żądania w kolejnym żądaniu. Następnie FunctionInvokingChatClient przetworzy tę odpowiedź zatwierdzenia i wywoła funkcję odpowiednio.

Ze względu na charakter interakcji z bazowym IChatClientelementem , jeśli zostanie FunctionCallContent odebrany dla funkcji wymagającej zatwierdzenia, wszystkie odebrane FunctionCallContent w tej samej odpowiedzi będą również wymagać zatwierdzenia, nawet jeśli nie ApprovalRequiredAIFunction były wystąpieniami. Jeśli jest to problem, rozważ zażądanie, aby wiele żądań wywołań narzędzia nie zostało złożonych w jednej odpowiedzi, ustawiając wartość AllowMultipleToolCalls .false

FunctionInvokingChatClient Wystąpienie jest bezpieczne wątkowo w przypadku współbieżnego użycia, tak długo, jak AIFunction wystąpienia stosowane w ramach dostarczonej ChatOptions części są również bezpieczne. Właściwość AllowConcurrentInvocation może służyć do kontrolowania, czy wiele żądań wywołań funkcji w ramach tego samego żądania jest wywoływanych współbieżnie, ale nawet w przypadku tego ustawionego na false (wartość domyślna), wiele współbieżnych żądań do tego samego wystąpienia i używanie tych samych narzędzi może spowodować jednoczesne użycie tych narzędzi (jeden na żądanie). Na przykład funkcja, która uzyskuje dostęp do obiektu HttpContext określonego żądania internetowego ASP.NET, powinna być używana tylko jako część pojedynczego ChatOptions w danym momencie i tylko z AllowConcurrentInvocation ustawioną wartością false, w przypadku gdy klient wewnętrzny postanowił wydać wiele żądań wywołań do tej samej funkcji.

Konstruktory

Nazwa Opis
FunctionInvokingChatClient(IChatClient, ILoggerFactory, IServiceProvider)

Inicjuje nowe wystąpienie klasy FunctionInvokingChatClient.

Właściwości

Nazwa Opis
AdditionalTools

Pobiera lub ustawia kolekcję dodatkowych narzędzi, które klient może wywołać.

AllowConcurrentInvocation

Pobiera lub ustawia wartość wskazującą, czy zezwalać na współbieżne wywołanie funkcji.

CurrentContext

Pobiera lub ustawia FunctionInvocationContext dla wywołania bieżącej funkcji.

FunctionInvocationServices

IServiceProvider Pobiera określony podczas konstruowania FunctionInvokingChatClientelementu , jeśli istnieje.

FunctionInvoker

Pobiera lub ustawia delegata używanego do wywoływania AIFunction wystąpień.

IncludeDetailedErrors

Pobiera lub ustawia wartość wskazującą, czy szczegółowe informacje o wyjątku powinny być zawarte w historii czatu podczas wywoływania bazowego IChatClientelementu .

InnerClient

Pobiera wewnętrzny IChatClientelement .

(Odziedziczone po DelegatingChatClient)
MaximumConsecutiveErrorsPerRequest

Pobiera lub ustawia maksymalną liczbę kolejnych iteracji, które mogą zakończyć się niepowodzeniem z powodu błędu.

MaximumIterationsPerRequest

Pobiera lub ustawia maksymalną liczbę iteracji na żądanie.

TerminateOnUnknownCalls

Pobiera lub ustawia wartość wskazującą, czy żądanie wywołania nieznanej funkcji powinno zakończyć pętlę wywoływania funkcji.

Metody

Nazwa Opis
CreateResponseMessages(ReadOnlySpan<FunctionInvokingChatClient.FunctionInvocationResult>)

Tworzy co najmniej jeden komunikat odpowiedzi dla wyników wywołania funkcji.

Dispose()

Wykonuje zadania zdefiniowane przez aplikację skojarzone z zwalnianiem, wydawaniem lub resetowaniem niezarządzanych zasobów.

(Odziedziczone po DelegatingChatClient)
Dispose(Boolean)

Udostępnia mechanizm zwalniania niezarządzanych zasobów.

(Odziedziczone po DelegatingChatClient)
GetResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken)

Wysyła wiadomości czatu i zwraca odpowiedź.

GetService(Type, Object)

IChatClient Pyta o obiekt określonego typu serviceType.

(Odziedziczone po DelegatingChatClient)
GetStreamingResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken)

Wysyła wiadomości czatu i przesyła strumieniowo odpowiedź.

InvokeFunctionAsync(FunctionInvocationContext, CancellationToken)

Ta metoda wywoła funkcję w bloku try.

Metody rozszerzania

Nazwa Opis
AsBuilder(IChatClient)

Tworzy nowy ChatClientBuilder element przy użyciu innerClient jako wewnętrzny klient.

GetRequiredService(IChatClient, Type, Object)

IChatClient Pyta o obiekt określonego typu serviceType i zgłasza wyjątek, jeśli nie jest dostępny.

GetRequiredService<TService>(IChatClient, Object)

IChatClient Pyta o obiekt typu TService i zgłasza wyjątek, jeśli nie jest dostępny.

GetResponseAsync(IChatClient, ChatMessage, ChatOptions, CancellationToken)

Wysyła wiadomość czatu i zwraca wiadomości odpowiedzi.

GetResponseAsync(IChatClient, String, ChatOptions, CancellationToken)

Wysyła wiadomość SMS czatu użytkownika i zwraca wiadomości odpowiedzi.

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

Wysyła wiadomość czatu, żądając odpowiedzi zgodnej z typem T.

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

Wysyła wiadomość czatu, żądając odpowiedzi zgodnej z typem T.

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

Wysyła wiadomości czatu, żądając odpowiedzi zgodnej z typem T.

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

Wysyła wiadomości czatu, żądając odpowiedzi zgodnej z typem T.

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

Wysyła wiadomość tekstową czatu użytkownika, żądając odpowiedzi zgodnej z typem T.

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

Wysyła wiadomość tekstową czatu użytkownika, żądając odpowiedzi zgodnej z typem T.

GetService<TService>(IChatClient, Object)

IChatClient Pyta o obiekt typu TService.

GetStreamingResponseAsync(IChatClient, ChatMessage, ChatOptions, CancellationToken)

Wysyła wiadomość czatu i przesyła strumieniowo wiadomości odpowiedzi.

GetStreamingResponseAsync(IChatClient, String, ChatOptions, CancellationToken)

Wysyła wiadomość tekstową czatu użytkownika i przesyła strumieniowo wiadomości odpowiedzi.

Dotyczy