FunctionInvokingChatClient Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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
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 |
| GetStreamingResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken) |
Skickar chattmeddelanden och strömmar svaret. |
| InvokeFunctionAsync(FunctionInvocationContext, CancellationToken) |
Den här metoden anropar funktionen i try-blocket. |