FunctionInvokingChatClient Sınıf

Tanım

üzerinde ChatOptionstanımlanan işlevleri çağıran bir temsilci sohbet istemcisi. İşlev çağrılarını otomatik olarak çözmek için bunu bir sohbet işlem hattına ekleyin.

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

Açıklamalar

Bu istemci kendi içinden IChatClientbir sohbet yanıtı aldığındaFunctionCallContent, içinde tanımlanan Tools (veya içindeAdditionalTools) karşılık geleni AIFunction çağırarak yanıt verir ve iç istemciye geri gönderdiğini FunctionResultContent üretir. Bu döngü, yapılması gereken başka işlev çağrısı kalmayıncaya kadar veya başka bir durdurma koşulu karşılanana kadar (örneğin, tuşuna basana MaximumIterationsPerRequestkadar) yinelenir.

İstenen işlev bir AIFunctionDeclaration ise ancak değilse AIFunction, FunctionInvokingChatClient işlevi çağırmaya çalışmaz ve bunun yerine çağıranın geri geçmesine izin verir FunctionCallContent . Bu durumda, bu çağrı için uygun FunctionResultContent olanını oluşturmak ve sonraki bir isteğin parçası olarak geri göndermek çağıranın sorumluluğundadır.

Ayrıca, istenen bir işlev bir ApprovalRequiredAIFunctionFunctionInvokingChatClient ise, işlevi doğrudan çağırmaya çalışmaz. Bunun yerine, bunu FunctionCallContent öğesini sarmalayan FunctionCallContent ve işlevin çağrılabilmesi için onay gerektirdiğini belirten bir ToolApprovalRequestContent ile değiştirir. Daha sonra arayan, sonraki istekte karşılık gelen ToolApprovalResponseContent bir istek göndererek bu onay isteğini yanıtlamaktan sorumludur. Daha FunctionInvokingChatClient sonra bu onay yanıtını işler ve işlevi uygun şekilde çağırır.

Temel alınan IChatClientile etkileşimlerin doğası gereği, onay gerektiren bir işlev için herhangi FunctionCallContent biri alınırsa, aynı yanıtta alınanların FunctionCallContent tümü de örnek olmasa ApprovalRequiredAIFunction bile onay gerektirir. Bu bir sorunsa, olarak ayarlayarak AllowMultipleToolCalls tek bir yanıtta birden çok araç çağrısı isteğinde bulunulmaması isteğinde bulunmayı falsegöz önünde bulundurun.

Sağlanan FunctionInvokingChatClientChatOptions örneğin bir parçası olarak kullanılan örnekler de güvenli olduğu AIFunction sürece bir örnek eşzamanlı kullanım için iş parçacığı açısından güvenlidir. özelliği, AllowConcurrentInvocation aynı isteğin parçası olarak birden çok işlev çağırma isteğinin eşzamanlı olarak çağrılıp çağrılmayacağını denetlemek için kullanılabilir, ancak bu (varsayılan) olarak ayarlanmış false olsa bile, aynı örneğe yönelik birden çok eşzamanlı istek ve aynı araçların kullanılması bu araçların eşzamanlı olarak kullanılmasına (istek başına bir tane) neden olabilir. Örneğin, belirli bir ASP.NET web isteğinin HttpContext'ine erişen bir işlev, aynı işleve birden çok çağrı isteği göndermeye karar verme olasılığına karşı yalnızca tek bir ChatOptions tekin parçası olarak ve yalnızca olarak ayarlanmış falseolarak AllowConcurrentInvocation kullanılmalıdır.

Oluşturucular

Name Description
FunctionInvokingChatClient(IChatClient, ILoggerFactory, IServiceProvider)

FunctionInvokingChatClient sınıfının yeni bir örneğini başlatır.

Özellikler

Name Description
AdditionalTools

İstemcinin çağırabileceği ek araçlar koleksiyonunu alır veya ayarlar.

AllowConcurrentInvocation

İşlevlerin eşzamanlı çağrılmasına izin verilip verilmeyeceğini belirten bir değer alır veya ayarlar.

CurrentContext

Geçerli işlev çağrısı için öğesini FunctionInvocationContext alır veya ayarlar.

FunctionInvocationServices

IServiceProvider varsa , oluştururken FunctionInvokingChatClientbelirtilen değerini alır.

FunctionInvoker

Örnekleri çağırmak AIFunction için kullanılan bir temsilciyi alır veya ayarlar.

IncludeDetailedErrors

Temel alınan IChatClientöğesini çağırırken ayrıntılı özel durum bilgilerinin sohbet geçmişine eklenip eklenmeyeceğini belirten bir değer alır veya ayarlar.

InnerClient

öğesinin iç IChatClientöğesini alır.

(Devralındığı yer: DelegatingChatClient)
MaximumConsecutiveErrorsPerRequest

Hatayla başarısız olmasına izin verilen en fazla ardışık yineleme sayısını alır veya ayarlar.

MaximumIterationsPerRequest

İstek başına en fazla yineleme sayısını alır veya ayarlar.

TerminateOnUnknownCalls

Bilinmeyen bir işlevi çağırma isteğinin işlev çağırma döngüsünü sonlandırması gerekip gerekmediğini belirten bir değer alır veya ayarlar.

Yöntemler

Name Description
CreateResponseMessages(ReadOnlySpan<FunctionInvokingChatClient.FunctionInvocationResult>)

İşlev çağırma sonuçları için bir veya daha fazla yanıt iletisi oluşturur.

Dispose()

Yönetilmeyen kaynakları serbest bırakma, serbest bırakma veya sıfırlama ile ilişkili uygulama tanımlı görevleri gerçekleştirir.

(Devralındığı yer: DelegatingChatClient)
Dispose(Boolean)

Yönetilmeyen kaynakları serbest bırakmak için bir mekanizma sağlar.

(Devralındığı yer: DelegatingChatClient)
GetResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken)

Sohbet iletileri gönderir ve yanıtı döndürür.

GetService(Type, Object)

IChatClient belirtilen türde serviceTypebir nesnesi ister.

(Devralındığı yer: DelegatingChatClient)
GetStreamingResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken)

Sohbet iletileri gönderir ve yanıtın akışını sağlar.

InvokeFunctionAsync(FunctionInvocationContext, CancellationToken)

Bu yöntem try bloğu içinde işlevini çağırır.

Uzantı Metotları

Name Description
AsBuilder(IChatClient)

İç istemcisi olarak kullanarak ChatClientBuilder yeni innerClient bir oluşturur.

GetRequiredService(IChatClient, Type, Object)

IChatClient belirtilen türde serviceType bir nesne ister ve kullanılamıyorsa bir özel durum oluşturur.

GetRequiredService<TService>(IChatClient, Object)

IChatClient türünde TService bir nesne ister ve kullanılamıyorsa bir özel durum oluşturur.

GetResponseAsync(IChatClient, ChatMessage, ChatOptions, CancellationToken)

Sohbet iletisi gönderir ve yanıt iletilerini döndürür.

GetResponseAsync(IChatClient, String, ChatOptions, CancellationToken)

Kullanıcı sohbeti kısa mesajı gönderir ve yanıt iletilerini döndürür.

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

türüyle Teşleşen bir yanıt isteyen bir sohbet iletisi gönderir.

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

türüyle Teşleşen bir yanıt isteyen bir sohbet iletisi gönderir.

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

türüyle Teşleşen bir yanıt isteyerek sohbet iletileri gönderir.

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

türüyle Teşleşen bir yanıt isteyerek sohbet iletileri gönderir.

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

türüyle Teşleşen bir yanıt isteyen bir kullanıcı sohbeti kısa mesajı gönderir.

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

türüyle Teşleşen bir yanıt isteyen bir kullanıcı sohbeti kısa mesajı gönderir.

GetService<TService>(IChatClient, Object)

IChatClient türünde TServicebir nesne ister.

GetStreamingResponseAsync(IChatClient, ChatMessage, ChatOptions, CancellationToken)

Bir sohbet iletisi gönderir ve yanıt iletilerini akışla gönderir.

GetStreamingResponseAsync(IChatClient, String, ChatOptions, CancellationToken)

Kullanıcı sohbeti kısa mesajı gönderir ve yanıt iletilerini akışla gönderir.

Şunlara uygulanır