FunctionInvokingChatClient Klass

Definition

En delegerande chattklient som anropar funktioner som definierats på ChatOptions. Inkludera detta i en chattpipeline för att lösa funktionsanrop automatiskt.

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

Kommentarer

När den här klienten tar emot ett FunctionCallContent i ett chattsvar från dess inre IChatClientsvarar den genom att anropa motsvarande AIFunction som definierats i Tools (eller i AdditionalTools) och generera en FunctionResultContent som den skickar tillbaka till den inre klienten. Den här loopen upprepas tills det inte finns några fler funktionsanrop att göra, eller tills ett annat stoppvillkor uppfylls, till exempel genom att trycka på MaximumIterationsPerRequest.

Om en begärd funktion är en AIFunctionDeclaration men inte en AIFunction, FunctionInvokingChatClient försöker inte anropa den och tillåter i stället att den FunctionCallContent skickas tillbaka till anroparen. Det är sedan uppringarens ansvar att skapa lämpliga FunctionResultContent för det samtalet och skicka tillbaka det som en del av en efterföljande begäran.

Om en begärd funktion är en ApprovalRequiredAIFunctionFunctionInvokingChatClient försöker inte anropa den direkt. I stället ersätts FunctionCallContent den med en ToolApprovalRequestContent som omsluter FunctionCallContent och anger att funktionen kräver godkännande innan den kan anropas. Anroparen ansvarar sedan för att svara på begäran om godkännande genom att skicka en motsvarande ToolApprovalResponseContent i en efterföljande begäran. FunctionInvokingChatClient Kommer sedan att bearbeta godkännandesvaret och anropa funktionen efter behov.

På grund av typen av interaktioner med en underliggande IChatClient, om någon FunctionCallContent tas emot för en funktion som kräver godkännande, kommer alla som tas emot FunctionCallContent i samma svar också att kräva godkännande, även om de inte ApprovalRequiredAIFunction var instanser. Om detta är ett problem bör du överväga att begära att flera begäranden om anrop av verktyg inte görs i ett enda svar genom att ange AllowMultipleToolCalls till false.

En FunctionInvokingChatClient instans är trådsäker för samtidig användning så länge de AIFunction instanser som används som en del av den angivna ChatOptions också är säkra. Egenskapen AllowConcurrentInvocation kan användas för att styra om flera begäranden om funktionsanrop som en del av samma begäran kan anropas samtidigt, men även med den inställningen false (standard) kan flera samtidiga begäranden till samma instans och samma verktyg leda till att dessa verktyg används samtidigt (en per begäran). Till exempel bör en funktion som använder HttpContext för en specifik ASP.NET webbbegäran endast användas som en del av en enda ChatOptions i taget, och endast med AllowConcurrentInvocation inställd på false, om den inre klienten bestämde sig för att utfärda flera begäranden om anrop till samma funktion.

Konstruktorer

Name Description
FunctionInvokingChatClient(IChatClient, ILoggerFactory, IServiceProvider)

Initierar en ny instans av FunctionInvokingChatClient klassen.

Egenskaper

Name Description
AdditionalTools

Hämtar eller anger en samling ytterligare verktyg som klienten kan anropa.

AllowConcurrentInvocation

Hämtar eller anger ett värde som anger om du vill tillåta samtidig anrop av funktioner.

CurrentContext

Hämtar eller anger FunctionInvocationContext för den aktuella funktionsanropet.

FunctionInvocationServices

Hämtar angiven IServiceProvider när du skapar FunctionInvokingChatClient, om någon.

FunctionInvoker

Hämtar eller anger ett ombud som används för att anropa AIFunction instanser.

IncludeDetailedErrors

Hämtar eller anger ett värde som anger om detaljerad undantagsinformation ska ingå i chatthistoriken när du anropar den underliggande IChatClient.

InnerClient

Hämtar den inre IChatClient.

(Ärvd från DelegatingChatClient)
MaximumConsecutiveErrorsPerRequest

Hämtar eller anger det maximala antalet iterationer i följd som tillåts misslyckas med ett fel.

MaximumIterationsPerRequest

Hämtar eller anger det maximala antalet iterationer per begäran.

TerminateOnUnknownCalls

Hämtar eller anger ett värde som anger om en begäran om att anropa en okänd funktion ska avsluta funktionsanropsloopen.

Metoder

Name Description
CreateResponseMessages(ReadOnlySpan<FunctionInvokingChatClient.FunctionInvocationResult>)

Skapar ett eller flera svarsmeddelanden för funktionsanropsresultat.

Dispose()

Utför programdefinierade uppgifter som är associerade med att frigöra, frigöra eller återställa ohanterade resurser.

(Ärvd från DelegatingChatClient)
Dispose(Boolean)

Tillhandahåller en mekanism för att frigöra ohanterade resurser.

(Ärvd från DelegatingChatClient)
GetResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken)

Skickar chattmeddelanden och returnerar svaret.

GetService(Type, Object)

Frågar efter IChatClient ett objekt av den angivna typen serviceType.

(Ärvd från DelegatingChatClient)
GetStreamingResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken)

Skickar chattmeddelanden och strömmar svaret.

InvokeFunctionAsync(FunctionInvocationContext, CancellationToken)

Den här metoden anropar funktionen i try-blocket.

Tilläggsmetoder

Name Description
AsBuilder(IChatClient)

Skapar en ny ChatClientBuilder som använder innerClient som sin inre klient.

GetRequiredService(IChatClient, Type, Object)

Frågar efter IChatClient ett objekt av den angivna typen serviceType och utlöser ett undantag om ett inte är tillgängligt.

GetRequiredService<TService>(IChatClient, Object)

Frågar efter IChatClient ett objekt av typen TService och utlöser ett undantag om ett inte är tillgängligt.

GetResponseAsync(IChatClient, ChatMessage, ChatOptions, CancellationToken)

Skickar ett chattmeddelande och returnerar svarsmeddelandena.

GetResponseAsync(IChatClient, String, ChatOptions, CancellationToken)

Skickar ett sms för användarchatt och returnerar svarsmeddelandena.

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

Skickar ett chattmeddelande och begär ett svar som matchar typen T.

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

Skickar ett chattmeddelande och begär ett svar som matchar typen T.

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

Skickar chattmeddelanden och begär ett svar som matchar typen T.

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

Skickar chattmeddelanden och begär ett svar som matchar typen T.

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

Skickar ett sms för användarchatt och begär ett svar som matchar typen T.

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

Skickar ett sms för användarchatt och begär ett svar som matchar typen T.

GetService<TService>(IChatClient, Object)

Frågar efter IChatClient ett objekt av typen TService.

GetStreamingResponseAsync(IChatClient, ChatMessage, ChatOptions, CancellationToken)

Skickar ett chattmeddelande och strömmar svarsmeddelandena.

GetStreamingResponseAsync(IChatClient, String, ChatOptions, CancellationToken)

Skickar ett sms för användarchatt och strömmar svarsmeddelandena.

Gäller för