@@ -20,21 +20,20 @@ public abstract class CausalLMPipelineChatClient<TTokenizer, TCausalLMModel> : I
2020{
2121 private readonly ICausalLMPipeline < TTokenizer , TCausalLMModel > _pipeline ;
2222 private readonly IMEAIChatTemplateBuilder _chatTemplateBuilder ;
23+ private readonly ChatClientMetadata _metadata ;
2324
2425 public CausalLMPipelineChatClient (
2526 ICausalLMPipeline < TTokenizer , TCausalLMModel > pipeline ,
2627 IMEAIChatTemplateBuilder chatTemplateBuilder ,
2728 ChatClientMetadata ? metadata = null )
2829 {
2930 var classNameWithType = $ "{ nameof ( CausalLMPipelineChatClient < TTokenizer , TCausalLMModel > ) } <{ typeof ( TTokenizer ) . Name } , { typeof ( TCausalLMModel ) . Name } >";
30- Metadata ?? = new ChatClientMetadata ( providerName : classNameWithType , modelId : typeof ( TCausalLMModel ) . Name ) ;
31+ _metadata = new ChatClientMetadata ( providerName : classNameWithType , modelId : typeof ( TCausalLMModel ) . Name ) ;
3132 _chatTemplateBuilder = chatTemplateBuilder ;
3233 _pipeline = pipeline ;
3334 }
3435
35- public ChatClientMetadata Metadata { get ; }
36-
37- public virtual Task < ChatCompletion > CompleteAsync ( IList < ChatMessage > chatMessages , ChatOptions ? options = null , CancellationToken cancellationToken = default )
36+ public virtual Task < ChatResponse > GetResponseAsync ( IList < ChatMessage > chatMessages , ChatOptions ? options = null , CancellationToken cancellationToken = default )
3837 {
3938 var prompt = _chatTemplateBuilder . BuildPrompt ( chatMessages , options ) ;
4039 var stopSequences = options ? . StopSequences ?? Array . Empty < string > ( ) ;
@@ -46,15 +45,15 @@ public virtual Task<ChatCompletion> CompleteAsync(IList<ChatMessage> chatMessage
4645 stopSequences : stopSequences . ToArray ( ) ) ?? throw new InvalidOperationException ( "Failed to generate a reply." ) ;
4746
4847 var chatMessage = new ChatMessage ( ChatRole . Assistant , output ) ;
49- return Task . FromResult ( new ChatCompletion ( [ chatMessage ] )
48+ return Task . FromResult ( new ChatResponse ( [ chatMessage ] )
5049 {
5150 CreatedAt = DateTime . UtcNow ,
5251 FinishReason = ChatFinishReason . Stop ,
5352 } ) ;
5453 }
5554
5655#pragma warning disable CS1998 // Async method lacks 'await' operators and will run synchronously
57- public virtual async IAsyncEnumerable < StreamingChatCompletionUpdate > CompleteStreamingAsync (
56+ public virtual async IAsyncEnumerable < ChatResponseUpdate > GetStreamingResponseAsync (
5857#pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously
5958 IList < ChatMessage > chatMessages ,
6059 ChatOptions ? options = null ,
@@ -69,7 +68,7 @@ public virtual async IAsyncEnumerable<StreamingChatCompletionUpdate> CompleteStr
6968 temperature : options ? . Temperature ?? 0.7f ,
7069 stopSequences : stopSequences . ToArray ( ) ) )
7170 {
72- yield return new StreamingChatCompletionUpdate
71+ yield return new ChatResponseUpdate
7372 {
7473 Role = ChatRole . Assistant ,
7574 Text = output ,
@@ -83,6 +82,8 @@ public virtual void Dispose()
8382 }
8483
8584 public virtual object ? GetService ( Type serviceType , object ? serviceKey = null ) =>
86- serviceKey is null && serviceType is not null && serviceType . IsAssignableFrom ( GetType ( ) ) ? this :
85+ serviceKey is not null ? null :
86+ serviceType == typeof ( ChatClientMetadata ) ? _metadata :
87+ serviceType . IsAssignableFrom ( GetType ( ) ) ? this :
8788 null ;
8889}
0 commit comments