@@ -23,8 +23,9 @@ use either::Either;
2323use indexmap:: IndexMap ;
2424use itertools:: Itertools ;
2525use mistralrs_core:: {
26- ChatCompletionResponse , Constraint , DrySamplingParams , MistralRs , NormalRequest , Request ,
27- RequestMessage , Response , SamplingParams , StopTokens as InternalStopTokens ,
26+ ChatCompletionChunkResponse , ChatCompletionResponse , Constraint , DrySamplingParams , MistralRs ,
27+ NormalRequest , Request , RequestMessage , Response , SamplingParams ,
28+ StopTokens as InternalStopTokens ,
2829} ;
2930use serde:: Serialize ;
3031
@@ -47,6 +48,7 @@ pub struct Streamer {
4748 rx : Receiver < Response > ,
4849 done_state : DoneState ,
4950 state : SharedMistralState ,
51+ chunks : Vec < ChatCompletionChunkResponse > ,
5052}
5153
5254impl futures:: Stream for Streamer {
@@ -64,6 +66,7 @@ impl futures::Stream for Streamer {
6466 return Poll :: Ready ( Some ( Ok ( Event :: default ( ) . data ( "[DONE]" ) ) ) ) ;
6567 }
6668 DoneState :: Done => {
69+ dbg ! ( & self . chunks) ;
6770 return Poll :: Ready ( None ) ;
6871 }
6972 DoneState :: Running => ( ) ,
@@ -474,10 +477,12 @@ pub async fn send_request(state: &SharedMistralState, request: Request) -> Resul
474477}
475478
476479pub fn create_chat_streamer ( rx : Receiver < Response > , state : SharedMistralState ) -> Sse < Streamer > {
480+ let chunks: Vec < _ > = vec ! [ ] ;
477481 let streamer = Streamer {
478482 rx,
479483 done_state : DoneState :: Running ,
480484 state,
485+ chunks,
481486 } ;
482487
483488 let keep_alive_interval = get_keep_alive_interval ( ) ;
0 commit comments