Ë
    uPêje-  ã                   óJ  — U d dl Z d dlZd dlZd dlmZ d dlmZ d dlZd dlm	Z	 d dl
mZ d dlmZmZmZmZ d dlmZ d dlmZmZ d	d
lmZ ddlmZ  e«       Zeed<   dedefd„Zdedefd„Zi ddi fde de!de dedededededeez  fd„Z"dede de!e   dededededeez  fd„Z#y)é    N)ÚCallable)ÚFinal)ÚREPLICATE_POLLING_DELAY_SECONDS)ÚLogging)ÚAsyncHTTPHandlerÚHTTPHandlerÚ_get_httpx_clientÚget_async_httpx_client)ÚAllMessageValues)ÚCustomStreamWrapperÚModelResponseé   )ÚReplicateErroré   )ÚReplicateConfigÚreplicate_configÚheadersÚhttp_clientc              #   óv  K  — d}d}d}|dvrôt        j                  t        «        |d| › �«       |j                  | |¬«      }|j                  dk(  r‡|j                  «       }	|	d   }d|	v r7	 dj                  |	d   «      }|t        |«      d  }
 |d|
› �«       |
|dœ–— |}|	d   }|dk(  rN|	j                  dd«      }t        dd|› �|j                  ¬
«      ‚ |d|j                  › |j                  › �«       |dvrŒóy y # t        $ r+ t        dd	j                  |	d   «      |j                  ¬
«      ‚w xY w­w)NÚ ©Ú	succeededÚfailedÚcanceledzreplicate: polling endpoint: ©r   éÈ   ÚstatusÚoutputé¦  ú Unable to parse response. Got={}©Ústatus_codeÚmessager   úNew chunk: ©r   r   r   Úerroré�  úError: ú8Replicate: Failed to fetch prediction status and output.)ÚtimeÚsleepr   Úgetr"   ÚjsonÚjoinÚ	Exceptionr   Úformatr   ÚlenÚtext)Úprediction_urlÚ	api_tokenÚprint_verboser   r   Úprevious_outputÚoutput_stringr   ÚresponseÚresponse_dataÚ
new_outputÚreplicate_errors               úh/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/replicate/chat/handler.pyÚ$handle_prediction_response_streamingr=      s}  è ø€ ð €OØ€Mà€FØÐ"EÑEÜ�
‰
Ô2Ô3ÙÐ5°nÐ5EÐFÔGØ—?‘? >¸7�?ÓCˆØ×Ñ 3Ò&Ø$ŸM™M›OˆMØ" 8Ñ,ˆFØ˜=Ñ(ðØ$&§G¡G¨M¸(Ñ,CÓ$D�Mð +¬3¨Ó+?Ð+AÐB�
Ù ¨J¨<Ð8Ô9Ø!+°vÑ>Ò>Ø"/�Ø" 8Ñ,ˆFØ˜Ò!Ø"/×"3Ñ"3°G¸RÓ"@�Ü$Ø #Ø% oÐ%6Ð7Ø$×,Ñ,ôð ñ ØJÈ8×K_ÑK_ÐJ`Ðai×anÑanÐ`oÐpôð= Ð"EÔEøô !ò Ü(Ø$'Ø B× IÑ IÈ-ÐX`ÑJaÓ bØ (× 0Ñ 0ôð ðüs%   ‚A*D9Á-D ÂA>D9Ä D9Ä4D6Ä6D9c           
     óJ  K  — d}d}d}|dv�rJt        j                  t        «      ƒ d {  –—†  |j                  | |¬«      ƒ d {  –—† }|j                  dk(  r×|j                  «       }	|	j                  dd«      }d|	v xr |	d   d u}
|
rb	 t        |	d   t        «      rdj                  |	d   «      }n|	d   €d}nt        |	d   «      }|t        |«      d  } |d
|› �«       ||dœ­–— |}|	j                  dd«      }|dk(  rN|	j                  dd«      }t        dd|› �|j                  ¬	«      ‚ |d|j                  › |j                  › �«       |dvr�ŒIy y 7 �Œ/7 �Œ# t        $ r8 t        ddj                  |	j                  dd «      «      |j                  ¬	«      ‚w xY w­w)Nr   r   r   r   r   r   r   r    r!   r$   r%   r   r&   r'   r(   r)   )Úasyncior+   r   r,   r"   r-   Ú
isinstanceÚlistr.   Ústrr/   r   r0   r   r1   r2   )r3   r4   r5   r   r   r6   r7   r   r8   r9   Úoutput_presentr:   r;   s                r<   Ú*async_handle_prediction_response_streamingrD   E   sÛ  è ø€ ð €OØ€Mà€FØÐ"EÒEÜ�m‰mÔ;Ó<×<Ð<Ø$Ÿ™¨À˜ÓI×IˆØ×Ñ 3Ò&Ø$ŸM™M›OˆMØ"×&Ñ& x°Ó4ˆFà%¨Ð6Ò^¸=ÈÑ;RÐZ^Ð;^ˆNÙðä! -°Ñ"9¼4Ô@Ø(*¯©°¸hÑ0GÓ(H™Ø& xÑ0Ð8Ø(*™ô ),¨M¸(Ñ,CÓ(D˜ð +¬3¨Ó+?Ð+AÐB�
Ù ¨J¨<Ð8Ô9Ø!+°vÑ>Ó>Ø"/�Ø"×&Ñ& x°Ó4ˆFØ˜Ò!Ø"/×"3Ñ"3°G¸RÓ"@�Ü$Ø #Ø% oÐ%6Ð7Ø$×,Ñ,ôð ñ ØJÈ8×K_ÑK_ÐJ`Ðai×anÑanÐ`oÐpôðM Ð"EÕEØ<ùØIúô  !ò Ü(Ø$'Ø B× IÑ IÈ-×J[ÑJ[Ð\dÐfjÓJkÓ lØ (× 0Ñ 0ôð ðüsB   ‚(F#ªE«F#ÁEÁAF#Â>E Ã	BF#ÅF#ÅF#ÅAF Æ F#ÚmodelÚmessagesÚapi_baseÚmodel_responser5   Úoptional_paramsÚlitellm_paramsÚlogging_objÚreturnc                 óÐ  — t         j                  ||| |||¬«      }t         j                  | «      }t         j                  | ||||¬«      }|�|du rt	        || |	||||||||||¬«      S t        t        j                  «       «      |_        t         j                  ||| ||¬«      }t        ddi¬«      }|j                  ||t        j                  |«      ¬	«      }t         j                  |«      }d
|v r.|d
   du r' |d«       t        |||||¬«      }t        || |d¬«      S t!        t"        j$                  «      D ]�  }t        j&                  t"        j(                  d|z  z   «       |j+                  ||¬«      }|j,                  dk(  r"|j                  «       j+                  d«      dv rŒpt#        j.                  «       j1                  | |||||||||	¬«
      c S  t3        ddd ¬«      ‚)N)Úapi_keyr   rE   rF   rI   rJ   )rE   rF   rI   rJ   r   T)rH   rE   ÚencodingrF   rI   rJ   Ú
version_idÚ
input_datarN   rG   rK   r5   r   ©rG   rN   rE   rI   rJ   Útimeoutç     À‚@)Úparams©Úurlr   ÚdataÚstreamzstreaming request©r   r   Ú	replicate©rK   Úcustom_llm_providerr   ©rW   r   r   r   ©Ú
processingÚstarting©
rE   Úraw_responserH   rK   rN   Úrequest_datarF   rI   rJ   rO   éô  ú9No response received from Replicate API after max retriesr!   )r   Úvalidate_environmentÚmodel_to_version_idÚtransform_requestÚasync_completionÚintr*   ÚcreatedÚget_complete_urlr	   Úpostr-   ÚdumpsÚget_prediction_urlr=   r   ÚrangeÚlitellmÚ!DEFAULT_REPLICATE_POLLING_RETRIESr+   Ú'DEFAULT_REPLICATE_POLLING_DELAY_SECONDSr,   r"   r   Útransform_responser   )rE   rF   rG   rH   r5   rI   rJ   rK   rN   rO   Úcustom_prompt_dictÚ	logger_fnÚacompletionr   rP   rQ   r3   Úhttpx_clientr8   Ú	_responseÚretrys                        r<   Ú
completionr|   |   sP  € ô  ×3Ñ3ØØØØØ'Ø%ð 4ó €Gô )×<Ñ<¸UÓC€JÜ(×:Ñ:ØØØ'Ø%Øð ;ó €Jð Ð ;°$Ñ#6ÜØ)ØØØØ+Ø)Ø!Ø!ØØØ#Ø'Øô
ð 	
ô  !¤§¡£Ó-€NÔä%×6Ñ6ØØØØ'Ø%ð 7ó €Nô ,Ø˜5Ð!ô€Lð × Ñ ØØÜ�Z‰Z˜
Ó#ð !ó €Hô &×8Ñ8¸ÓB€Nð �?Ñ" °xÑ'@ÀDÑ'HÙÐ)Ô*Ü?ØØØØØ$ô
ˆ	ô # 9¨eÀÐbmÔnÐnäœ7×DÑDÓEò 	ˆEÜ�J‰JÜ×?Ñ?À!ÀeÁ)ÑKôð $×'Ñ'¨NÀGÐ'ÓLˆHØ×#Ñ# sÒ*¨x¯}©}«×/BÑ/BÀ8Ó/Lð Qñ 0ð Ü×*Ñ*Ó,×?Ñ?ØØ%Ø-Ø'ØØ'Ø!Ø /Ø-Ø!ð @ó ò ð	ô. ØØKØôð ó    c              ƒ   ó$  K  — t         j                  |	||||¬«      }t        t        j                  j
                  ddi¬«      }|j                  ||t        j                  |«      ¬«      ƒ d {  –—† }t         j                  |«      }d|v r&|d   du rt        |||||¬«      }t        |||
d	¬
«      S t        t        j                  «      D ]­  }t        j                  t        j                   d|z  z   «      ƒ d {  –—†  |j#                  ||¬«      ƒ d {  –—† }|j$                  dk(  r"|j                  «       j#                  d«      dv rŒ€t        j&                  «       j)                  ||| |
||||||¬«
      c S  t+        ddd ¬«      ‚7 �Œ7 Œ‘7 Œx­w)NrR   rS   rT   )Úllm_providerrU   rV   rY   TrZ   r[   r\   r   r^   r   r   r_   rb   re   rf   r!   )r   rm   r
   rr   ÚLlmProvidersÚ	REPLICATErn   r-   ro   rp   rD   r   rq   rs   r?   r+   rt   r,   r"   r   ru   r   )rH   rE   rF   rO   rI   rJ   rP   rQ   rN   rG   rK   r5   r   r3   Úasync_handlerr8   rz   r{   s                     r<   rj   rj   ï   sÁ  è ø€ ô &×6Ñ6ØØØØ'Ø%ð 7ó €Nô 2Ü×)Ñ)×3Ñ3Ø˜5Ð!ô€Mð #×'Ñ'¨NÀGÔRV×R\ÑR\Ð]gÓRhÐ'Ói×i€HÜ%×8Ñ8¸ÓB€Nà�?Ñ" °xÑ'@ÀDÑ'HÜEØØØØØ%ô
ˆ	ô # 9¨eÀÐbmÔnÐnä”w×@Ñ@ÓAò 
ˆÜ�m‰mÜ×;Ñ;¸aÀ%¹iÑGó
÷ 	
ð 	
ð '×*Ñ*¨~ÀwÐ*ÓO×OˆØ×Ñ 3Ò&¨8¯=©=«?×+>Ñ+>¸xÓ+Hð M
ñ ,
ð Ü×&Ñ&Ó(×;Ñ;ØØ!Ø)Ø#ØØ#ØØ+Ø)Øð <ó 
ò 	
ð
ô. ØØKØôð ðI jùð	
øð Pús8   ‚A,FÁ.F	Á/BFÃ:FÃ;FÄFÄA4FÆFÆF)$r?   r-   r*   Úcollections.abcr   Útypingr   rr   Úlitellm.constantsr   Ú*litellm.litellm_core_utils.litellm_loggingr   ÚLiteLLMLoggingObjÚ&litellm.llms.custom_httpx.http_handlerr   r   r	   r
   Úlitellm.types.llms.openair   Úlitellm.utilsr   r   Úcommon_utilsr   Útransformationr   r   Ú__annotations__Údictr=   rD   rB   rA   r|   rj   © r}   r<   ú<module>r�      sS  ðÜ Û Û Ý $Ý ã Ý =Ý S÷ó õ 7ß <å )Ý +á)Ó+Ð �%Ó +ð'Ø7;ð'ØJUó'ðV3ð ð	3ð
 "ó3ðD ØØØñpØðpàðpð ðpð "ð	pð
 ðpð ðpð ðpð #ðpð Ð(Ñ(ópðfBØ!ðBàðBð Ð#Ñ$ðBð
 ðBð ðBð #ðBð ðBð Ð(Ñ(ôBr}   