@@ -659,6 +659,7 @@ def __init__(self, proxy: CopilotProvider):
659
659
def connection_made (self , transport : asyncio .Transport ) -> None :
660
660
"""Handle successful connection to target"""
661
661
self .transport = transport
662
+ logger .debug (f"Target transport peer: { transport .get_extra_info ('peername' )} " )
662
663
self .proxy .target_transport = transport
663
664
664
665
def _ensure_output_processor (self ) -> None :
@@ -703,9 +704,10 @@ async def stream_iterator():
703
704
streaming_choices .append (
704
705
StreamingChoices (
705
706
finish_reason = choice .get ("finish_reason" , None ),
706
- index = 0 ,
707
+ index = choice . get ( "index" , 0 ) ,
707
708
delta = Delta (content = content , role = "assistant" ),
708
- logprobs = None ,
709
+ logprobs = choice .get ("logprobs" , None ),
710
+ p = choice .get ("p" , None ),
709
711
)
710
712
)
711
713
@@ -716,12 +718,13 @@ async def stream_iterator():
716
718
created = record_content .get ("created" , 0 ),
717
719
model = record_content .get ("model" , "" ),
718
720
object = "chat.completion.chunk" ,
721
+ stream = True ,
719
722
)
720
723
yield mr
721
724
722
725
async for record in self .output_pipeline_instance .process_stream (stream_iterator ()):
723
726
chunk = record .model_dump_json (exclude_none = True , exclude_unset = True )
724
- sse_data = f"data:{ chunk } \n \n " .encode ("utf-8" )
727
+ sse_data = f"data: { chunk } \n \n " .encode ("utf-8" )
725
728
chunk_size = hex (len (sse_data ))[2 :] + "\r \n "
726
729
self ._proxy_transport_write (chunk_size .encode ())
727
730
self ._proxy_transport_write (sse_data )
@@ -764,6 +767,10 @@ def _proxy_transport_write(self, data: bytes):
764
767
logger .error ("Proxy transport not available" )
765
768
return
766
769
self .proxy .transport .write (data )
770
+ # print("DEBUG =================================")
771
+ # print(data)
772
+ # print("DEBUG =================================")
773
+
767
774
768
775
def data_received (self , data : bytes ) -> None :
769
776
"""Handle data received from target"""
@@ -781,11 +788,21 @@ def data_received(self, data: bytes) -> None:
781
788
if header_end != - 1 :
782
789
self .headers_sent = True
783
790
# Send headers first
784
- headers = data [: header_end + 4 ]
791
+ headers = data [: header_end ]
792
+
793
+ # If Transfer-Encoding is not present, add it
794
+ if b"Transfer-Encoding:" not in headers :
795
+ headers = headers + b"\r \n Transfer-Encoding: chunked"
796
+
797
+ headers = headers + b"\r \n \r \n "
798
+
785
799
self ._proxy_transport_write (headers )
786
800
logger .debug (f"Headers sent: { headers } " )
787
801
788
802
data = data [header_end + 4 :]
803
+ # print("DEBUG =================================")
804
+ # print(data)
805
+ # print("DEBUG =================================")
789
806
790
807
self ._process_chunk (data )
791
808
0 commit comments