FunctionInvokingChatClient Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
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 |
| GetStreamingResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken) |
Mengirim pesan obrolan dan mengalirkan respons. |
| InvokeFunctionAsync(FunctionInvocationContext, CancellationToken) |
Metode ini akan memanggil fungsi dalam blok coba. |