FunctionInvokingChatClient Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Delegování chatovacího klienta, který volá funkce definované na ChatOptions. Zahrňte ho do chatovacího kanálu pro automatické řešení volání funkcí.
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
- Dědičnost
Poznámky
Když tento klient obdrží odpověď v chatu FunctionCallContent z jeho vnitřního IChatClient, odpoví vyvoláním odpovídajícího AIFunction definovaného ( Tools nebo in AdditionalTools) vytvoření FunctionResultContent , který odešle zpět do vnitřního klienta. Tato smyčka se opakuje, dokud nebudou k dispozici žádná další volání funkce, která se mají provést, nebo dokud nebude splněna jiná podmínka zastavení, jako je například stisknutí MaximumIterationsPerRequestklávesy .
Pokud požadovaná funkce představuje funkci AIFunctionDeclaration , která není, ale ne AIFunction, FunctionInvokingChatClient pokusí se ji vyvolat a místo toho umožní, FunctionCallContent aby se volajícímu vrátila zpět. Pak je odpovědnost volajícího vytvořit odpovídající FunctionResultContent pro tento hovor a odeslat ho zpět jako součást dalšího požadavku.
Dále platí, že pokud je požadovaná funkce , ApprovalRequiredAIFunctionFunctionInvokingChatClient nepokusí se ji vyvolat přímo. Místo toho ji nahradí FunctionCallContentToolApprovalRequestContent zalomením FunctionCallContent a označuje, že funkce před vyvolání vyžaduje schválení. Volající pak odpovídá za reakci na tuto žádost o schválení odesláním odpovídající ToolApprovalResponseContent v následné žádosti. Potom FunctionInvokingChatClient tuto odpověď schválení zpracuje a podle potřeby vyvolá funkci.
Vzhledem k povaze interakcí s podkladovým objektem IChatClient, pokud je pro FunctionCallContent funkci, která vyžaduje schválení, budou všechny přijaté FunctionCallContent ve stejné odpovědi také vyžadovat schválení, i když nebyly ApprovalRequiredAIFunction instance. Pokud se jedná o problém, zvažte žádost, aby více žádostí o volání nástroje nebyly provedeny v jedné odpovědi nastavením AllowMultipleToolCalls na false.
Instance FunctionInvokingChatClient je bezpečná pro souběžné použití, pokud AIFunction jsou instance použité v rámci dodaného ChatOptions prostředí také bezpečné.
AllowConcurrentInvocation Vlastnost se dá použít k řízení, jestli se žádosti o vyvolání více funkcí v rámci stejného požadavku vyvolá souběžně, ale i když je nastaveno na false (výchozí), může to mít za následek souběžné volání více souběžných požadavků na tuto instanci a použití stejných nástrojů může vést k tomu, že se tyto nástroje používají souběžně (jeden na požadavek). Například funkce, která přistupuje k HttpContext konkrétního webového požadavku ASP.NET, by se měla používat pouze jako součást jednoho ChatOptions najednou, a pouze s AllowConcurrentInvocation nastavenou na false, v případě, že se vnitřní klient rozhodl vydat více žádostí o vyvolání této stejné funkce.
Konstruktory
| Name | Description |
|---|---|
| FunctionInvokingChatClient(IChatClient, ILoggerFactory, IServiceProvider) |
Inicializuje novou instanci FunctionInvokingChatClient třídy. |
Vlastnosti
| Name | Description |
|---|---|
| AdditionalTools |
Získá nebo nastaví kolekci dalších nástrojů, které klient může vyvolat. |
| AllowConcurrentInvocation |
Získá nebo nastaví hodnotu určující, zda povolit souběžné vyvolání funkcí. |
| CurrentContext |
Získá nebo nastaví FunctionInvocationContext pro vyvolání aktuální funkce. |
| FunctionInvocationServices |
Získá zadaný IServiceProvider při vytváření FunctionInvokingChatClient, pokud existuje. |
| FunctionInvoker |
Získá nebo nastaví delegáta, který se používá k vyvolání AIFunction instancí. |
| IncludeDetailedErrors |
Získá nebo nastaví hodnotu určující, zda podrobné informace o výjimce by měly být zahrnuty do historie chatu při volání podkladové IChatClient. |
| InnerClient |
Získá vnitřní IChatClient. (Zděděno od DelegatingChatClient) |
| MaximumConsecutiveErrorsPerRequest |
Získá nebo nastaví maximální počet po sobě jdoucích iterací, které mohou selhat s chybou. |
| MaximumIterationsPerRequest |
Získá nebo nastaví maximální počet iterací na požadavek. |
| TerminateOnUnknownCalls |
Získá nebo nastaví hodnotu určující, zda požadavek na volání neznámé funkce by měl ukončit volání smyčky funkce. |
Metody
| Name | Description |
|---|---|
| CreateResponseMessages(ReadOnlySpan<FunctionInvokingChatClient.FunctionInvocationResult>) |
Vytvoří jednu nebo více zpráv odpovědí pro výsledky vyvolání funkce. |
| Dispose() |
Provádí úlohy definované aplikací související s uvolněním, uvolněním nebo resetováním nespravovaných prostředků. (Zděděno od DelegatingChatClient) |
| Dispose(Boolean) |
Poskytuje mechanismus pro uvolnění nespravovaných prostředků. (Zděděno od DelegatingChatClient) |
| GetResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken) |
Odešle chatové zprávy a vrátí odpověď. |
| GetService(Type, Object) |
Požádá o IChatClient objekt zadaného typu |
| GetStreamingResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken) |
Odešle chatové zprávy a streamuje odpověď. |
| InvokeFunctionAsync(FunctionInvocationContext, CancellationToken) |
Tato metoda vyvolá funkci v rámci bloku try. |