Ë
    uPêjE  ã                   ó²   — d dl Z d dlmZ d dlmZ d dlZd dlmZmZ d dl	m
Z
mZ da G d„ de«      Zdefd	„Zi ddfded
ede
dedef
d„Zdi fded
efd„Zd„ Zy)é    N)ÚCallable)ÚFinal)Úcustom_promptÚprompt_factory)ÚModelResponseÚUsagec                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )Ú	VLLMErrorc                 óØ   •— || _         || _        t        j                  dd¬«      | _        t        j
                  || j                  ¬«      | _        t        ‰| �!  | j                  «       y )NÚPOSTzhttp://0.0.0.0:8000)ÚmethodÚurl)Ústatus_codeÚrequest)	r   ÚmessageÚhttpxÚRequestr   ÚResponseÚresponseÚsuperÚ__init__)Úselfr   r   Ú	__class__s      €úi/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/llms/vllm/completion/handler.pyr   zVLLMError.__init__   sL   ø€ Ø&ˆÔØˆŒÜ—}‘}¨FÐ8MÔNˆŒÜŸ™°;ÈÏÉÔUˆŒÜ‰Ñ˜Ÿ™Õ&ó    )Ú__name__Ú
__module__Ú__qualname__r   Ú__classcell__)r   s   @r   r
   r
      s   ø„ ÷'ð 'r   r
   Úmodelc                 ó�   — 	 ddl m}m} t        €	 || ¬«      at        |fS # t        $ r}t        dt        |«      ¬«      ‚d }~ww xY w)Nr   )ÚLLMÚSamplingParams©r    ©r   r   )Úvllmr"   r#   ÚllmÚ	Exceptionr
   Ústr)r    r"   r#   Úes       r   Úvalidate_environmentr+      sE   € ð7ß,äˆ;Ù˜EÔ"ˆCÜ�NÐ"Ð"øÜò 7Ü A¬s°1«vÔ6Ð6ûð7ús   ‚! ¡	AªA Á AÚmessagesÚmodel_responseÚprint_verboseÚoptional_paramsc
                 óJ  — 	 t        | ¬«      \  a}
 |
di |¤Ž}| |v r||    }t        |d   |d   |d   |¬«      }nt        | |¬«      }|j                  |d	d
|i¬«       t        rt        j                  ||«      }nt        dd¬«      ‚d|v r|d   du rt        |«      S |j                  |d	|d
|i¬«        |d|› �«       |d   j                  d   j                  |j                  d   j                  _        t!        |d   j"                  «      }t!        |d   j                  d   j$                  «      }t'        t)        j(                  «       «      |_        | |_        t/        ||||z   ¬«      }t1        |d|«       |S # t        $ r}t        dt	        |«      ¬«      ‚d }~ww xY w)Nr$   r   r%   ÚrolesÚinitial_prompt_valueÚfinal_prompt_value©Ú	role_dictr2   r3   r,   ©r    r,   Ú Úcomplete_input_dict)ÚinputÚapi_keyÚadditional_argsú/Need to pass in a model name to initialize vllmÚstreamT)r9   r:   Úoriginal_responser;   zraw model_response: ©Úprompt_tokensÚcompletion_tokensÚtotal_tokensÚusage© )r+   r'   r(   r
   r)   r   r   Úpre_callÚgenerateÚiterÚ	post_callÚoutputsÚtextÚchoicesr   ÚcontentÚlenÚprompt_token_idsÚ	token_idsÚintÚtimeÚcreatedr    r   Úsetattr)r    r,   r-   r.   ÚencodingÚlogging_objr/   Úcustom_prompt_dictÚlitellm_paramsÚ	logger_fnr#   r*   Úsampling_paramsÚmodel_prompt_detailsÚpromptrI   r@   rA   rC   s                      r   Ú
completionr\   &   sÜ  € ð7Ü2¸Ô?Ñˆˆ^ñ ,Ñ>¨oÑ>€OØÐ"Ñ"à&8¸Ñ&?ÐÜØ*¨7Ñ3Ø!5Ð6LÑ!MØ3Ð4HÑIØô	
‰ô   e°hÔ?ˆð ×ÑØØØ.°Ð@ð ô õ ÜŸ™ f¨oÓ>‰ä AÐ/`ÔaÐað �?Ñ" °xÑ'@ÀDÑ'HÜ�G‹}Ðð 	×ÑØØØ%Ø2°OÐDð	 	ô 	
ñ 	Ð,¨W¨IÐ6Ô7à4;¸A±J×4FÑ4FÀqÑ4I×4NÑ4Nˆ×Ñ˜qÑ!×)Ñ)Ô1ô  # 7¨1¡:×#>Ñ#>Ó?ˆÜ#& w¨q¡z×'9Ñ'9¸!Ñ'<×'FÑ'FÓ#GÐä!$¤T§Y¡Y£[Ó!1ˆÔØ$ˆÔÜØ'Ø/Ø&Ð):Ñ:ô
ˆô
 	� ¨Ô/ØÐøôm ò 7Ü A¬s°1«vÔ6Ð6ûð7ús   ‚E> Å>	F"ÆFÆF"c                 ó<  — 	 t        | ¬«      \  }} |di |¤Ž}g }	| |v r6||    }
|D ]+  }t	        |
d   |
d   |
d   |¬«      }|	j                  |«       Œ- n%|D ]   }t        | |¬	«      }|	j                  |«       Œ" |r|j                  |	|«      }nt        dd
¬«      ‚g }|D ]Ð  }t        «       }|j                  d   j                  |j                  d   j                  _        t        |j                  «      }t        |j                  d   j                   «      }t#        t%        j$                  «       «      |_        | |_        t+        ||||z   ¬«      }t-        |d|«       |j                  |«       ŒÒ |S # t        $ r}t        |«      }t        d|¬«      ‚d}~ww xY w)aÿ  
    Example usage:
    import litellm
    import os
    from litellm import batch_completion


    responses = batch_completion(
        model="vllm/facebook/opt-125m",
        messages = [
            [
                {
                    "role": "user",
                    "content": "good morning? "
                }
            ],
            [
                {
                    "role": "user",
                    "content": "what's the time? "
                }
            ]
        ]
    )
    r$   r   r%   Nr1   r2   r3   r4   r6   r<   r?   rC   rD   )r+   r(   r)   r
   r   Úappendr   rF   r   rI   rJ   rK   r   rL   rM   rN   rO   rP   rQ   rR   r    r   rS   )r    r,   r/   rV   r'   r#   r*   Ú	error_strrY   ÚpromptsrZ   r   r[   rI   Úfinal_outputsÚoutputr-   r@   rA   rC   s                       r   Úbatch_completionsrc   n   s¾  € ð4:Ü2¸Ô?Ñˆˆ^ñ ,Ñ>¨oÑ>€OØ€GØÐ"Ñ"à&8¸Ñ&?ÐØò 	#ˆGÜ"Ø.¨wÑ7Ø%9Ð:PÑ%QØ#7Ð8LÑ#MØ ô	ˆFð �N‰N˜6Õ"ñ	#ð  ò 	#ˆGÜ#¨%¸'ÔBˆFØ�N‰N˜6Õ"ð	#ñ ØŸ™ g¨Ó?‰ä AÐ/`ÔaÐaà€MØò -ˆÜ&›ˆà4:·N±NÀ1Ñ4E×4JÑ4Jˆ×Ñ˜qÑ!×)Ñ)Ô1ô ˜F×3Ñ3Ó4ˆÜ §¡¨qÑ 1× ;Ñ ;Ó<Ðä!$¤T§Y¡Y£[Ó!1ˆÔØ$ˆÔÜØ'Ø/Ø&Ð):Ñ:ô
ˆô
 	� ¨Ô/Ø×Ñ˜^Õ,ð#-ð$ Ðøô[ ò :Ü˜q›6ˆ	Ü A¨yÔ9Ð9ûð:ús   ‚E5 Å5	FÅ>FÆFc                   ó   — y )NrD   rD   r   r   Ú	embeddingre   º   s   € àr   )rQ   Úcollections.abcr   Útypingr   r   Ú3litellm.litellm_core_utils.prompt_templates.factoryr   r   Úlitellm.utilsr   r   r'   r(   r
   r)   r+   ÚlistÚdictr\   rc   re   rD   r   r   ú<module>rl      s£   ðÛ Ý $Ý ã ÷÷ /à
€ô'�	ô 'ð	7 ó 	7ð( ØØñEØðEàðEð "ðEð ð	Eð óEðP CGÐ[]ñ I˜Sð I¨Dó IóX	r   