Ë
    uPêjL  ã                   ód   — d dl Z d dlmZ d dlZd dlmZ d dlmZmZmZ d dl	m
Z
mZ  G d„ d«      Zy)é    N)ÚFinal)Úverbose_logger)ÚChatCompletionToolCallChunkÚ#ChatCompletionToolCallFunctionChunkÚChatCompletionUsageBlock)ÚGenericStreamingChunkÚUsagec                   ó@   — e Zd Zdefd„Zdedefd„Zd„ Zd„ Z	d„ Z
d	„ Zy
)ÚModelResponseIteratorÚsync_streamc                 ó   — || _         y ©N)Ústreaming_response)Úselfr   r   s      úl/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/databricks/streaming_utils.pyÚ__init__zModelResponseIterator.__init__   s
   € Ø"4ˆÕó    ÚchunkÚreturnc                 óB  — 	 t        j                  di |¤Ž}d}d }d}d}d }t        |j                  «      dk(  rXt	        |dd «      }t        dd dd|�8t        |j                  xs d|j                  xs d|j                  xs d¬«      nd d¬«      S |j                  d   j                  j                  �#|j                  d   j                  j                  }|j                  d   j                  j                  ���t        |j                  d   j                  j                  «      dkD  �rQ|j                  d   j                  j                  d   j                  �� |j                  d   j                  j                  d   j                  j                  �æt        |j                  d   j                  j                  d   j                   dt#        |j                  d   j                  j                  d   j                  j$                  |j                  d   j                  j                  d   j                  j                  ¬«      |j                  d   j                  j                  d   j&                  ¬	«      }|j                  d   j(                  �d
}|j                  d   j(                  }t	        |dd «      }	|	�,t        |	j                  |	j                  |	j                  ¬«      }t        |||||d¬«      S # t*        j,                  $ r t/        d|› �«      ‚w xY w)NÚ Fr   Úusage)Úprompt_tokensÚcompletion_tokensÚtotal_tokens)ÚtextÚtool_useÚis_finishedÚfinish_reasonr   ÚindexÚfunction)ÚnameÚ	arguments)ÚidÚtyper!   r    Tz"Failed to decode JSON from chunk: © )ÚlitellmÚModelResponseStreamÚlenÚchoicesÚgetattrr   r   r   r   r   ÚdeltaÚcontentÚ
tool_callsr!   r#   r   r$   r   r"   r    r   ÚjsonÚJSONDecodeErrorÚ
ValueError)
r   r   Úprocessed_chunkr   r   r   r   r   Úfinal_usageÚusage_chunks
             r   Úchunk_parserz"ModelResponseIterator.chunk_parser   sû  € ðG	KÜ%,×%@Ñ%@Ñ%IÀ5Ñ%IˆOàˆDØ;?ˆHØˆKØˆMØ59ˆEô
 �?×*Ñ*Ó+¨qÒ0Ü%,¨_¸gÀtÓ%L�Ü,ØØ!Ø %Ø"$ð 'Ð2ô 1Ø*5×*CÑ*CÒ*HÀqØ.9×.KÑ.KÒ.PÈqØ)4×)AÑ)AÒ)FÀQõð "àôð ð" ×&Ñ& qÑ)×/Ñ/×7Ñ7ÐCØ&×.Ñ.¨qÑ1×7Ñ7×?Ñ?�ð  ×'Ñ'¨Ñ*×0Ñ0×;Ñ;ÑGÜ˜×/Ñ/°Ñ2×8Ñ8×CÑCÓDÀqÓHØ#×+Ñ+¨AÑ.×4Ñ4×?Ñ?ÀÑB×KÑKÑWØ#×+Ñ+¨AÑ.×4Ñ4×?Ñ?ÀÑB×KÑK×UÑUÐaä6Ø&×.Ñ.¨qÑ1×7Ñ7×BÑBÀ1ÑE×HÑHØ#Ü@Ø,×4Ñ4°QÑ7×=Ñ=×HÑHÈÑK×TÑT×YÑYØ"1×"9Ñ"9¸!Ñ"<×"BÑ"B×"MÑ"MÈaÑ"P×"YÑ"Y×"cÑ"côð *×1Ñ1°!Ñ4×:Ñ:×EÑEÀaÑH×NÑNô�ð ×&Ñ& qÑ)×7Ñ7ÐCØ"�Ø /× 7Ñ 7¸Ñ :× HÑ H�ä/6°ÈÐQUÓ/VˆKØÐ&Ü0Ø"-×";Ñ";Ø&1×&CÑ&CØ!,×!9Ñ!9ô�ô )ØØ!Ø'Ø+ØØôð øô ×#Ñ#ò 	KÜÐAÀ%ÀÐIÓJÐJð	Kús   ‚BK< ÂI*K< Ë<"Lc                 ó(   — | j                   | _        | S r   )r   Úresponse_iterator©r   s    r   Ú__iter__zModelResponseIterator.__iter__]   s   € Ø!%×!8Ñ!8ˆÔØˆr   c           	      óX  — t        | d«      s| j                  | _        	 | j                  j                  «       }	 t        j                  j                  |«      xs d}|j                  «       }t        |«      dkD  r't        j                  |«      }| j                  |¬«      S t        dddd dd ¬«      S # t        $ r t        ‚t
        $ r}t        d|› �«      ‚d }~ww xY w# t        $ r t        ‚t
        $ r2}t!        j"                  d||«       t        dddd dd ¬«      cY d }~S d }~ww xY w)	Nr7   ú#Error receiving chunk from stream: r   r   ©r   F©r   r   r   r   r    r   úLError parsing chunk: %s,
Received chunk: %s. Defaulting to empty chunk here.)Úhasattrr   r7   Ú__next__ÚStopIterationr1   ÚRuntimeErrorr'   ÚCustomStreamWrapperÚ_strip_sse_data_from_chunkÚstripr)   r/   Úloadsr5   r   r   Údebug©r   r   ÚeÚ
json_chunks       r   r@   zModelResponseIterator.__next__a   s9  € Ü�tÐ0Ô1Ø%)×%<Ñ%<ˆDÔ"ð	JØ×*Ñ*×3Ñ3Ó5ˆEð	Ü×/Ñ/×JÑJÈ5ÓQÒWÐUWˆEØ—K‘K“MˆEÜ�5‹z˜AŠ~Ü$(§J¡J¨uÓ$5�
Ø×(Ñ(¨zÐ(Ó:Ð:ä,ØØ %Ø"$ØØØ!ôð øô ò 	 ÜÐÜò 	JÜÐ!DÀQÀCÐHÓIÐIûð	Jûô$ ò 	 ÜÐÜò 	Ü× Ñ Ø_ÐabÐdiôô )ØØ!Ø ØØØôõ ûð		ús;   ŸB3 ºA'C  Â"C  Â3CÃ
CÃCÃ D)Ã7'D$ÄD)Ä$D)c                 óD   — | j                   j                  «       | _        | S r   )r   Ú	__aiter__Úasync_response_iteratorr8   s    r   rL   zModelResponseIterator.__aiter__Š   s   € Ø'+×'>Ñ'>×'HÑ'HÓ'JˆÔ$Øˆr   c           	   ƒ   ó„  K  — 	 | j                   j                  «       ƒ d {  –—† }	 t        j                  j                  |«      xs d}|j                  «       }|dk(  rt        ‚t        |«      dkD  r't        j                  |«      }| j                  |¬«      S t        dddd dd ¬«      S 7 Œ‰# t        $ r t        ‚t        $ r}t	        d|› �«      ‚d }~wt
        $ r}t	        d|› �«      ‚d }~ww xY w# t        $ r t        ‚t        $ r2}t        j                   d||«       t        dddd dd ¬«      cY d }~S d }~ww xY w­w)	Nr;   r   z[DONE]r   r<   Fr=   r>   )rM   Ú	__anext__ÚStopAsyncIterationr1   rB   Ú	Exceptionr'   rC   rD   rE   r)   r/   rF   r5   r   r   rG   rH   s       r   rO   zModelResponseIterator.__anext__Ž   sU  è ø€ ð	JØ×6Ñ6×@Ñ@ÓB×BˆEð	Ü×/Ñ/×JÑJÈ5ÓQÒWÐUWˆEØ—K‘K“MˆEØ˜Ò Ü(Ð(Ü�5‹z˜AŠ~Ü$(§J¡J¨uÓ$5�
Ø×(Ñ(¨zÐ(Ó:Ð:ä,ØØ %Ø"$ØØØ!ôð ð# CùÜ!ò 	%Ü$Ð$Üò 	JÜÐ!DÀQÀCÐHÓIÐIûÜò 	JÜÐ!DÀQÀCÐHÓIÐIûð	Jûô( "ò 	%Ü$Ð$Üò 	Ü× Ñ Ø_ÐabÐdiôô )ØØ!Ø ØØØôõ ûð		üsz   ‚E „B- ¡B+¢B- §A2C4 ÂE ÂC4 Â*E Â+B- Â-C1ÃCÃC1ÃC,Ã,C1Ã1E Ã4D=Ä'D8Ä2D=Ä3E Ä8D=Ä=E N)Ú__name__Ú
__module__Ú__qualname__Úboolr   Údictr   r5   r9   r@   rL   rO   r&   r   r   r   r      s>   „ ð5¸ó 5ðHK $ð HKÐ+@ó HKòVò&òRó(r   r   )r/   Útypingr   r'   r   Úlitellm.types.llms.openair   r   r   Úlitellm.types.utilsr   r	   r   r&   r   r   ú<module>rZ      s,   ðÛ Ý ã Ý "÷ñ ÷
 =÷hò hr   