ChatClientBuilder.Use 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
在聊天客戶端流程中新增一個中間聊天客戶端的工廠。
多載
Use(Func<IChatClient,IChatClient>)
在聊天客戶端流程中新增一個中間聊天客戶端的工廠。
public:
Microsoft::Extensions::AI::ChatClientBuilder ^ Use(Func<Microsoft::Extensions::AI::IChatClient ^, Microsoft::Extensions::AI::IChatClient ^> ^ clientFactory);
public Microsoft.Extensions.AI.ChatClientBuilder Use(Func<Microsoft.Extensions.AI.IChatClient,Microsoft.Extensions.AI.IChatClient> clientFactory);
member this.Use : Func<Microsoft.Extensions.AI.IChatClient, Microsoft.Extensions.AI.IChatClient> -> Microsoft.Extensions.AI.ChatClientBuilder
Public Function Use (clientFactory As Func(Of IChatClient, IChatClient)) As ChatClientBuilder
參數
- clientFactory
- Func<IChatClient,IChatClient>
客戶端工廠的功能。
傳回
更新 ChatClientBuilder 後的實例。
例外狀況
clientFactory 是 null。
另請參閱
適用於
Use(Func<IChatClient,IServiceProvider,IChatClient>)
在聊天客戶端流程中新增一個中間聊天客戶端的工廠。
public:
Microsoft::Extensions::AI::ChatClientBuilder ^ Use(Func<Microsoft::Extensions::AI::IChatClient ^, IServiceProvider ^, Microsoft::Extensions::AI::IChatClient ^> ^ clientFactory);
public Microsoft.Extensions.AI.ChatClientBuilder Use(Func<Microsoft.Extensions.AI.IChatClient,IServiceProvider,Microsoft.Extensions.AI.IChatClient> clientFactory);
member this.Use : Func<Microsoft.Extensions.AI.IChatClient, IServiceProvider, Microsoft.Extensions.AI.IChatClient> -> Microsoft.Extensions.AI.ChatClientBuilder
Public Function Use (clientFactory As Func(Of IChatClient, IServiceProvider, IChatClient)) As ChatClientBuilder
參數
- clientFactory
- Func<IChatClient,IServiceProvider,IChatClient>
客戶端工廠的功能。
傳回
更新 ChatClientBuilder 後的實例。
例外狀況
clientFactory 是 null。
另請參閱
適用於
Use(Func<IEnumerable<ChatMessage>,ChatOptions,Func<IEnumerable<ChatMessage>,ChatOptions,CancellationToken,Task>,CancellationToken,Task>)
public:
Microsoft::Extensions::AI::ChatClientBuilder ^ Use(Func<System::Collections::Generic::IEnumerable<Microsoft::Extensions::AI::ChatMessage ^> ^, Microsoft::Extensions::AI::ChatOptions ^, Func<System::Collections::Generic::IEnumerable<Microsoft::Extensions::AI::ChatMessage ^> ^, Microsoft::Extensions::AI::ChatOptions ^, System::Threading::CancellationToken, System::Threading::Tasks::Task ^> ^, System::Threading::CancellationToken, System::Threading::Tasks::Task ^> ^ sharedFunc);
public Microsoft.Extensions.AI.ChatClientBuilder Use(Func<System.Collections.Generic.IEnumerable<Microsoft.Extensions.AI.ChatMessage>,Microsoft.Extensions.AI.ChatOptions?,Func<System.Collections.Generic.IEnumerable<Microsoft.Extensions.AI.ChatMessage>,Microsoft.Extensions.AI.ChatOptions?,System.Threading.CancellationToken,System.Threading.Tasks.Task>,System.Threading.CancellationToken,System.Threading.Tasks.Task> sharedFunc);
member this.Use : Func<seq<Microsoft.Extensions.AI.ChatMessage>, Microsoft.Extensions.AI.ChatOptions, Func<seq<Microsoft.Extensions.AI.ChatMessage>, Microsoft.Extensions.AI.ChatOptions, System.Threading.CancellationToken, System.Threading.Tasks.Task>, System.Threading.CancellationToken, System.Threading.Tasks.Task> -> Microsoft.Extensions.AI.ChatClientBuilder
Public Function Use (sharedFunc As Func(Of IEnumerable(Of ChatMessage), ChatOptions, Func(Of IEnumerable(Of ChatMessage), ChatOptions, CancellationToken, Task), CancellationToken, Task)) As ChatClientBuilder
參數
- sharedFunc
- Func<IEnumerable<ChatMessage>,ChatOptions,Func<IEnumerable<ChatMessage>,ChatOptions,CancellationToken,Task>,CancellationToken,Task>
一個代表,提供 和 GetResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken)GetStreamingResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken)的實作。 這個代理會被呼叫,包含聊天訊息清單、聊天選項、代表呼叫內部客戶端的代理,以及一個取消標記。 代表應該會收到應該傳達到下一階段的聊天訊息、選項和取消令牌。 它會處理非串流和串流案件。
傳回
更新 ChatClientBuilder 後的實例。
例外狀況
sharedFunc 是 null。
備註
當匿名實作需要提供預處理和/或後處理,但不需要與操作結果互動時,這種過載會被用於內部客戶端。
另請參閱
適用於
Use(Func<IEnumerable<ChatMessage>,ChatOptions,IChatClient,CancellationToken, Task<ChatResponse>>, Func<IEnumerable<ChatMessage>,ChatOptions, IChatClient,CancellationToken,IAsyncEnumerable<ChatResponseUpdate>>)
public:
Microsoft::Extensions::AI::ChatClientBuilder ^ Use(Func<System::Collections::Generic::IEnumerable<Microsoft::Extensions::AI::ChatMessage ^> ^, Microsoft::Extensions::AI::ChatOptions ^, Microsoft::Extensions::AI::IChatClient ^, System::Threading::CancellationToken, System::Threading::Tasks::Task<Microsoft::Extensions::AI::ChatResponse ^> ^> ^ getResponseFunc, Func<System::Collections::Generic::IEnumerable<Microsoft::Extensions::AI::ChatMessage ^> ^, Microsoft::Extensions::AI::ChatOptions ^, Microsoft::Extensions::AI::IChatClient ^, System::Threading::CancellationToken, System::Collections::Generic::IAsyncEnumerable<Microsoft::Extensions::AI::ChatResponseUpdate ^> ^> ^ getStreamingResponseFunc);
public Microsoft.Extensions.AI.ChatClientBuilder Use(Func<System.Collections.Generic.IEnumerable<Microsoft.Extensions.AI.ChatMessage>,Microsoft.Extensions.AI.ChatOptions?,Microsoft.Extensions.AI.IChatClient,System.Threading.CancellationToken,System.Threading.Tasks.Task<Microsoft.Extensions.AI.ChatResponse>>? getResponseFunc, Func<System.Collections.Generic.IEnumerable<Microsoft.Extensions.AI.ChatMessage>,Microsoft.Extensions.AI.ChatOptions?,Microsoft.Extensions.AI.IChatClient,System.Threading.CancellationToken,System.Collections.Generic.IAsyncEnumerable<Microsoft.Extensions.AI.ChatResponseUpdate>>? getStreamingResponseFunc);
member this.Use : Func<seq<Microsoft.Extensions.AI.ChatMessage>, Microsoft.Extensions.AI.ChatOptions, Microsoft.Extensions.AI.IChatClient, System.Threading.CancellationToken, System.Threading.Tasks.Task<Microsoft.Extensions.AI.ChatResponse>> * Func<seq<Microsoft.Extensions.AI.ChatMessage>, Microsoft.Extensions.AI.ChatOptions, Microsoft.Extensions.AI.IChatClient, System.Threading.CancellationToken, System.Collections.Generic.IAsyncEnumerable<Microsoft.Extensions.AI.ChatResponseUpdate>> -> Microsoft.Extensions.AI.ChatClientBuilder
Public Function Use (getResponseFunc As Func(Of IEnumerable(Of ChatMessage), ChatOptions, IChatClient, CancellationToken, Task(Of ChatResponse)), getStreamingResponseFunc As Func(Of IEnumerable(Of ChatMessage), ChatOptions, IChatClient, CancellationToken, IAsyncEnumerable(Of ChatResponseUpdate))) As ChatClientBuilder
參數
- getResponseFunc
- Func<IEnumerable<ChatMessage>,ChatOptions,IChatClient,CancellationToken,Task<ChatResponse>>
一個代表,提供 的 GetResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken)實作。 當 null時, getStreamingResponseFunc 必須非空,且 的 GetResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken) 實作將用於 getStreamingResponseFunc 實作。
- getStreamingResponseFunc
- Func<IEnumerable<ChatMessage>,ChatOptions,IChatClient,CancellationToken,IAsyncEnumerable<ChatResponseUpdate>>
一個代表,提供 的 GetStreamingResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken)實作。 當 null時, getResponseFunc 必須非空,且 的 GetStreamingResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken) 實作將用於 getResponseFunc 實作。
傳回
更新 ChatClientBuilder 後的實例。
例外狀況
兩者皆getResponseFuncgetStreamingResponseFunc為null。
備註
可派遣一名或兩名代表。 若兩者皆提供,則分別用於各自方法: getResponseFunc 將提供 的實作 GetResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken),且 getStreamingResponseFunc 的實作 GetStreamingResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken)。 若僅提供一名代表,則該代表將同時用於兩種方法。 這表示若 getResponseFunc 未包含 getStreamingResponseFunc,則 的 GetStreamingResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken) 實作將採用有限串流,因為它將以 所產生 getResponseFunc的批次輸出運作。 若 getStreamingResponseFunc 未 getResponseFunc包含 ,則 的 GetResponseAsync(IEnumerable<ChatMessage>, ChatOptions, CancellationToken) 實作將由 的更新 getStreamingResponseFunc合併而成。