Bagikan melalui


FunctionInvokingChatClient Kelas

Definisi

Klien obrolan yang mendelegasikan yang memanggil fungsi yang ditentukan pada ChatOptions. Sertakan ini dalam alur obrolan untuk mengatasi panggilan fungsi secara otomatis.

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

Keterangan

Ketika klien ini menerima FunctionCallContent dalam respons obrolan dari dalamnya IChatClient, klien merespons dengan memanggil yang sesuai AIFunction yang ditentukan dalam Tools (atau dalam AdditionalTools), menghasilkan FunctionResultContent yang dikirim kembali ke klien dalam. Perulangan ini diulang sampai tidak ada lagi panggilan fungsi untuk dilakukan, atau sampai kondisi berhenti lain terpenuhi, seperti menekan MaximumIterationsPerRequest.

Jika fungsi yang diminta adalah AIFunctionDeclaration tetapi bukan AIFunction, FunctionInvokingChatClient tidak akan mencoba memanggilnya, dan sebaliknya memungkinkannya FunctionCallContent untuk diteruskan kembali ke pemanggil. Kemudian, pemanggil bertanggung jawab untuk membuat panggilan yang sesuai FunctionResultContent dan mengirimkannya kembali sebagai bagian dari permintaan berikutnya.

Selanjutnya, jika fungsi yang diminta adalah ApprovalRequiredAIFunction, FunctionInvokingChatClient tidak akan mencoba memanggilnya secara langsung. Sebaliknya, ia akan menggantinya FunctionCallContent dengan ToolApprovalRequestContent yang membungkus FunctionCallContent dan menunjukkan bahwa fungsi memerlukan persetujuan sebelum dapat dipanggil. Penelepon kemudian bertanggung jawab untuk menanggapi permintaan persetujuan tersebut dengan mengirim yang sesuai ToolApprovalResponseContent dalam permintaan berikutnya. Kemudian FunctionInvokingChatClient akan memproses respons persetujuan tersebut dan memanggil fungsi yang sesuai.

Karena sifat interaksi dengan yang mendasar IChatClient, jika ada FunctionCallContent yang diterima untuk fungsi yang memerlukan persetujuan, semua yang diterima FunctionCallContent dalam respons yang sama juga akan memerlukan persetujuan, bahkan jika mereka bukan ApprovalRequiredAIFunction instans. Jika ini menjadi perhatian, pertimbangkan untuk meminta agar beberapa permintaan panggilan alat tidak dibuat dalam satu respons, dengan mengatur AllowMultipleToolCalls ke false.

Instans FunctionInvokingChatClient aman untuk penggunaan bersamaan selama AIFunction instans yang digunakan sebagai bagian dari yang disediakan ChatOptions juga aman. AllowConcurrentInvocation Properti dapat digunakan untuk mengontrol apakah beberapa permintaan pemanggilan fungsi sebagai bagian dari permintaan yang sama dapat dipanggil secara bersamaan, tetapi bahkan dengan yang diatur ke false (default), beberapa permintaan bersamaan ke instans yang sama ini dan menggunakan alat yang sama dapat mengakibatkan alat tersebut digunakan secara bersamaan (satu per permintaan). Misalnya, fungsi yang mengakses HttpContext dari permintaan web ASP.NET tertentu hanya boleh digunakan sebagai bagian dari satu per satu ChatOptions , dan hanya dengan AllowConcurrentInvocation diatur ke false, jika klien dalam memutuskan untuk mengeluarkan beberapa permintaan pemanggilan ke fungsi yang sama.

Konstruktor

Nama Deskripsi
FunctionInvokingChatClient(IChatClient, ILoggerFactory, IServiceProvider)

Menginisialisasi instans baru dari kelas FunctionInvokingChatClient.

Properti

Nama Deskripsi
AdditionalTools

Mendapatkan atau mengatur kumpulan alat tambahan yang dapat dipanggil klien.

AllowConcurrentInvocation

Mendapatkan atau menetapkan nilai yang menunjukkan apakah akan mengizinkan pemanggilan fungsi bersamaan.

CurrentContext

Mendapatkan atau mengatur FunctionInvocationContext untuk pemanggilan fungsi saat ini.

FunctionInvocationServices

Mendapatkan yang IServiceProvider ditentukan saat membuat FunctionInvokingChatClient, jika ada.

FunctionInvoker

Mendapatkan atau mengatur delegasi yang digunakan untuk memanggil AIFunction instans.

IncludeDetailedErrors

Mendapatkan atau menetapkan nilai yang menunjukkan apakah informasi pengecualian terperinci harus disertakan dalam riwayat obrolan saat memanggil yang mendasar IChatClient.

InnerClient

Mendapatkan bagian dalam IChatClient.

(Diperoleh dari DelegatingChatClient)
MaximumConsecutiveErrorsPerRequest

Mendapatkan atau mengatur jumlah maksimum perulangan berturut-turut yang diizinkan gagal dengan kesalahan.

MaximumIterationsPerRequest

Mendapatkan atau mengatur jumlah maksimum perulangan per permintaan.

TerminateOnUnknownCalls

Mendapatkan atau menetapkan nilai yang menunjukkan apakah permintaan untuk memanggil fungsi yang tidak diketahui harus mengakhiri perulangan panggilan fungsi.

Metode

Nama Deskripsi
CreateResponseMessages(ReadOnlySpan<FunctionInvokingChatClient.FunctionInvocationResult>)

Membuat satu atau beberapa pesan respons untuk hasil pemanggilan fungsi.

Dispose()

Melakukan tugas yang ditentukan aplikasi yang terkait dengan membebaskan, merilis, atau mengatur ulang sumber daya yang tidak dikelola.

(Diperoleh dari DelegatingChatClient)
Dispose(Boolean)

Menyediakan mekanisme untuk melepaskan sumber daya yang tidak dikelola.

(Diperoleh dari DelegatingChatClient)
GetResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken)

Mengirim pesan obrolan dan mengembalikan respons.

GetService(Type, Object)

IChatClient Meminta objek dari jenis serviceTypeyang ditentukan .

(Diperoleh dari DelegatingChatClient)
GetStreamingResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken)

Mengirim pesan obrolan dan mengalirkan respons.

InvokeFunctionAsync(FunctionInvocationContext, CancellationToken)

Metode ini akan memanggil fungsi dalam blok coba.

Metode Ekstensi

Nama Deskripsi
AsBuilder(IChatClient)

Membuat penggunaan ChatClientBuilder baru innerClient sebagai klien dalamnya.

GetRequiredService(IChatClient, Type, Object)

IChatClient Meminta objek dari jenis serviceType yang ditentukan dan melemparkan pengecualian jika objek tidak tersedia.

GetRequiredService<TService>(IChatClient, Object)

IChatClient Meminta objek jenis TService dan melemparkan pengecualian jika objek tidak tersedia.

GetResponseAsync(IChatClient, ChatMessage, ChatOptions, CancellationToken)

Mengirim pesan obrolan dan mengembalikan pesan respons.

GetResponseAsync(IChatClient, String, ChatOptions, CancellationToken)

Mengirim pesan teks obrolan pengguna dan mengembalikan pesan respons.

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

Mengirim pesan obrolan, meminta respons yang cocok dengan jenis T.

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

Mengirim pesan obrolan, meminta respons yang cocok dengan jenis T.

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

Mengirim pesan obrolan, meminta respons yang cocok dengan jenis T.

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

Mengirim pesan obrolan, meminta respons yang cocok dengan jenis T.

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

Mengirim pesan teks obrolan pengguna, meminta respons yang cocok dengan jenis T.

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

Mengirim pesan teks obrolan pengguna, meminta respons yang cocok dengan jenis T.

GetService<TService>(IChatClient, Object)

IChatClient Meminta objek jenis TService.

GetStreamingResponseAsync(IChatClient, ChatMessage, ChatOptions, CancellationToken)

Mengirim pesan obrolan dan mengalirkan pesan respons.

GetStreamingResponseAsync(IChatClient, String, ChatOptions, CancellationToken)

Mengirim pesan teks obrolan pengguna dan mengalirkan pesan respons.

Berlaku untuk