Ë
    uPêj«  ã                   óX   — d Z ddlZddlZddlmZmZ ddlmZmZ ddl	m
Z
  G d„ d«      Zy)z%
GigaChat Streaming Response Handler
é    N)ÚAnyÚFinal)ÚChatCompletionToolCallChunkÚ#ChatCompletionToolCallFunctionChunk)ÚGenericStreamingChunkc                   ób   — e Zd ZdZ	 ddedededz  fd„Zdedefd	„Z	d
„ Z
defd„Zd„ Zdefd„Zy)ÚGigaChatModelResponseIteratorz*Iterator for GigaChat streaming responses.Ústreaming_responseÚsync_streamÚ	json_modeNc                 óB   — || _         | j                   | _        || _        y ©N)r
   Úresponse_iteratorr   )Úselfr
   r   r   s       úi/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/gigachat/chat/streaming.pyÚ__init__z&GigaChatModelResponseIterator.__init__   s!   € ð #5ˆÔØ!%×!8Ñ!8ˆÔØ"ˆ�ó    ÚchunkÚreturnc                 ón  — d}d}d}d}|j                  dg «      }|st        dddddd¬«      S |d   }|j                  di «      }|j                  d«      }|j                  d	d«      xs d}|d
k(  r�|j                  d
«      rŒ|d
   }	|	j                  di «      }
t        |
t        «      rt	        j
                  |
d¬«      }
t        dt        j                  «       j                  dd › �dt        |	j                  dd«      |
¬«      d¬«      }d}|�d}t        ||||xs dd|j                  dd«      ¬«      S )z-Parse a single streaming chunk from GigaChat.Ú NFÚchoicesr   ©ÚtextÚtool_useÚis_finishedÚfinish_reasonÚusageÚindexÚdeltar   ÚcontentÚfunction_callÚ	arguments)Úensure_asciiÚcall_é   ÚfunctionÚname)r(   r#   )ÚidÚtyper'   r   Ú
tool_callsTr   )Úgetr   Ú
isinstanceÚdictÚjsonÚdumpsr   ÚuuidÚuuid4Úhexr   )r   r   r   r   r   r   r   Úchoicer    Ú	func_callÚargss              r   Úchunk_parserz*GigaChatModelResponseIterator.chunk_parser   s[  € àˆØ7;ˆØˆØ$(ˆàŸ™ 9¨bÓ1ˆÙÜ(ØØØ!Ø ØØôð ð   ™
ˆØ—z‘z '¨2Ó.ˆØŸ
™
 ?Ó3ˆð �y‰y˜ BÓ'Ò-¨2ˆð ˜OÒ+°·	±	¸/Ô0JØ$ _Ñ5ˆIØ—=‘= ¨bÓ1ˆDä˜$¤Ô%Ü—z‘z $°UÔ;�ä2Øœ4Ÿ:™:›<×+Ñ+¨C¨RÐ0Ð1Ð2ØÜ<Ø"Ÿ™ v¨rÓ2Ø"ôð ôˆHð )ˆMàÐ$ØˆKä$ØØØ#Ø'Ò-¨2ØØ—*‘*˜W aÓ(ô
ð 	
r   c                 ó   — | S r   © ©r   s    r   Ú__iter__z&GigaChatModelResponseIterator.__iter__U   ó   € Øˆr   c           	      ój  — 	 | j                   j                  «       }t        |t        «      r@|j	                  d«      }|j                  «       dk(  rt        ‚	 t        j                  |«      }| j                  |«      S # t        j                  $ r t        dd ddd d¬«      cY S w xY w# t        $ r ‚ w xY w©Nzdata: z[DONE]r   Fr   r   )r   Ú__next__r-   ÚstrÚremoveprefixÚstripÚStopIterationr/   ÚloadsÚJSONDecodeErrorr   r7   ©r   r   s     r   r?   z&GigaChatModelResponseIterator.__next__X   s¸   € ð	Ø×*Ñ*×3Ñ3Ó5ˆEÜ˜%¤Ô%à×*Ñ*¨8Ó4�Ø—;‘;“= HÒ,Ü'Ð'ð
Ü ŸJ™J uÓ-�Eð ×$Ñ$ UÓ+Ð+øô ×+Ñ+ò Ü0ØØ!%Ø$)Ø&(Ø"Øôò ðûô ò 	Øð	ús0   ‚AB' ÁA= Á,B' Á=$B$Â!B' Â#B$Â$B' Â'B2c                 ó   — | S r   r9   r:   s    r   Ú	__aiter__z'GigaChatModelResponseIterator.__aiter__o   r<   r   c           	   ƒ   ó†  K  — 	 | j                   j                  «       ƒ d {  –—† }t        |t        «      r@|j	                  d«      }|j                  «       dk(  rt        ‚	 t        j                  |«      }| j                  |«      S 7 Œe# t        j                  $ r t        dd ddd d¬«      cY S w xY w# t        $ r ‚ w xY w­wr>   )r   Ú	__anext__r-   r@   rA   rB   ÚStopAsyncIterationr/   rD   rE   r   r7   rF   s     r   rJ   z'GigaChatModelResponseIterator.__anext__r   sÃ   è ø€ ð	Ø×0Ñ0×:Ñ:Ó<×<ˆEÜ˜%¤Ô%à×*Ñ*¨8Ó4�Ø—;‘;“= HÒ,Ü,Ð,ð
Ü ŸJ™J uÓ-�Eð ×$Ñ$ UÓ+Ð+ð# =ùô ×+Ñ+ò Ü0ØØ!%Ø$)Ø&(Ø"Øôò ðûô "ò 	Øð	üsV   ‚C„B3 ¡B¢>B3 Á!B	 Á6B3 ÂCÂB3 Â	$B0Â-B3 Â.CÂ/B0Â0B3 Â3B>Â>C)F)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úboolr   r.   r   r7   r;   r?   rH   rJ   r9   r   r   r	   r	      sh   „ Ù4ð "'ñ	#àð#ð ð#ð ˜$‘;ó	#ð6
 $ð 6
Ð+@ó 6
òpðÐ/ó ò.ðÐ!6ô r   r	   )rO   r/   r1   Útypingr   r   Úlitellm.types.llms.openair   r   Úlitellm.types.utilsr   r	   r9   r   r   ú<module>rT      s+   ðñó Û ß ÷õ 6÷wò wr   