Ë
    Gêñi•  ã                   ó–   — d Z ddlZddl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  ej                  e«      Z G d„ d	«      Zd
e_         y)z+
CLI entry point for `transformers serve`.
é    N)Ú	Annotated)Úlogging)Úis_serve_availableé   )Úset_torch_seedc            .       óR  — e Zd Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d2deedz   ej                  d¬«      f   dee ej                  d¬«      f   dee	dz   ej                  d¬«      f   d	ee	dz   ej                  d
¬«      f   dee	dz   ej                  d¬«      f   dee
dz   ej                  d¬«      f   deedz   ej                  d¬«      f   deedz   ej                  d¬«      f   dee ej                  d¬«      f   deedz   ej                  d¬«      f   dee ej                  d¬«      f   deedz   ej                  d¬«      f   dee ej                  d¬«      f   dee	 ej                  d¬«      f   dee ej                  d ¬«      f   d!ee	 ej                  d"¬«      f   d#ee ej                  d$¬«      f   d%ee ej                  d&¬«      f   d'ee	dz   ej                  d(¬«      f   d)ee ej                  d*d+¬,«      f   d-df*d.„Zd/„ Zd0„ Zd1„ Zy)3ÚServeNÚforce_modelz*Model to preload and use for all requests.)ÚhelpÚcontinuous_batchingzMEnable continuous batching with paged attention. Configure with --cb-* flags.Úcb_block_sizez6KV cache block size in tokens for continuous batching.Úcb_num_blocksz2Number of KV cache blocks for continuous batching.Úcb_max_batch_tokensz1Maximum tokens per batch for continuous batching.Úcb_max_memory_percentz/Max GPU memory fraction for KV cache (0.0-1.0).Úcb_use_cuda_graphz+Enable CUDA graphs for continuous batching.Úattn_implementationz2Attention implementation (e.g. flash_attention_2).Úcompilez*Enable torch.compile for faster inference.Úquantizationz.Quantization method: 'bnb-4bit' or 'bnb-8bit'.Údevicez4Device for inference (e.g. 'auto', 'cuda:0', 'cpu').Údtypez2Override model dtype. 'auto' derives from weights.Útrust_remote_codezTrust remote code when loading.Úmodel_timeoutzGSeconds before idle model is unloaded. Ignored when force_model is set.ÚhostzServer listen address.ÚportzServer listen port.Úenable_corszEnable permissive CORS.Ú	log_levelz'Logging level (e.g. 'info', 'warning').Údefault_seedzDefault torch seed.Únon_blockingTz1Run server in a background thread. Used by tests.)Úhiddenr   Úreturnc           	      óB  — t        «       st        d«      ‚dd l}ddlm} ddlm} ddlm} ddl	m
} ddlm} dd	lm} dd
lm} |�t#        |«       t%        j&                  d«      }|j)                  t$        j*                  |j-                  «          «        ||||||
||¬«      | _        ddlm} |||||dœj5                  «       D �� ci c]
  \  }} | �|| “Œ }!}} |!r |di |!¤Žnd }" |||	|"¬«      | _         || j.                  | j6                  ¬«      | _         || j.                  | j6                  ¬«      | _         || j.                  | j6                  ¬«      | _         || j.                  | j6                  «      | _         || j.                  | j8                  | j:                  | j<                  | j>                  |¬«      }#|jA                  |#||d¬«      }$|jC                  |$«      | _"        |r| jG                  «        y | jD                  jI                  «        y c c} }w )NzRMissing dependencies for serving. Install with `pip install transformers[serving]`r   r   )ÚChatCompletionHandler)ÚCompletionHandler)ÚModelManager)ÚResponseHandler)Úbuild_server)ÚTranscriptionHandler)ÚGenerationStateÚtransformers)r   r   r   r   r   r   r
   )ÚContinuousBatchingConfig)Ú
block_sizeÚ
num_blocksÚmax_batch_tokensÚmax_memory_percentÚuse_cuda_graph)r   r   Ú	cb_config)Úmodel_managerÚgeneration_state)Úcompletion_handlerÚresponse_handlerÚtranscription_handlerr   Úinfo)r   r   r   © )%r   ÚImportErrorÚuvicornÚserving.chat_completionr"   Úserving.completionr#   Úserving.model_managerr$   Úserving.responser%   Úserving.serverr&   Úserving.transcriptionr'   Úserving.utilsr(   r   r   Ú
get_loggerÚsetLevelÚ
log_levelsÚlowerÚ_model_managerr)   r*   ÚitemsÚ_generation_stateÚ_chat_handlerÚ_completion_handlerÚ_response_handlerÚ_transcription_handlerÚConfigÚServerÚserverÚstart_serverÚrun)%Úselfr
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r9   r"   r#   r$   r%   r&   r'   r(   Útransformers_loggerr*   ÚkÚvÚ	cb_kwargsr0   ÚappÚconfigs%                                        úX/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/transformers/cli/serve.pyÚ__init__zServe.__init__"   s  € ô\ "Ô#ÜÐrÓsÐsãåBÝ9Ý7Ý5Ý0Ý?Ý2ð Ð#Ü˜<Ô(ô &×0Ñ0°Ó@ÐØ×$Ñ$¤W×%7Ñ%7¸	¿¹Ó8IÑ%JÔKá*ØØØ/Ø 3Ø%Ø'Ø#ô
ˆÔõ 	:ð
 ,Ø+Ø$7Ø&;Ø"3ñ÷ ‰e‹g÷

á��1ð ˆ}ð ˆq‰Dð

ˆ	ñ 

ñ >GÑ,Ñ9¨yÒ9ÈDˆ	Ù!0Ø 3ØØô"
ˆÔñ 3Ø×-Ñ-Ø!×3Ñ3ô
ˆÔñ
 $5Ø×-Ñ-Ø!×3Ñ3ô$
ˆÔ ñ
 "1Ø×-Ñ-Ø!×3Ñ3ô"
ˆÔñ
 ';¸4×;NÑ;NÐPT×PfÑPfÓ&gˆÔ#áØ×ÑØ×ÑØ#×7Ñ7Ø!×3Ñ3Ø"&×"=Ñ"=Ø#ô
ˆð —‘ ¨$°TÀV�ÓLˆØ—n‘n VÓ,ˆŒáØ×ÑÕà�K‰K�O‰OÕùóe

s   Ã	Hc                 ó~   ‡ — ˆ fd„}t        j                  |dd¬«      ‰ _        ‰ j                  j                  «        y )Nc                  óª   •— t        j                  «       } t        j                  | «       | j                  ‰j                  j                  «       «       y )N)ÚasyncioÚnew_event_loopÚset_event_loopÚrun_until_completerN   Úserve)ÚlooprQ   s    €rX   Ú_runz Serve.start_server.<locals>._run¥   s:   ø€ Ü×)Ñ)Ó+ˆDÜ×"Ñ" 4Ô(Ø×#Ñ# D§K¡K×$5Ñ$5Ó$7Õ8ó    zuvicorn-threadF)ÚtargetÚnameÚdaemon)Ú	threadingÚThreadÚ_threadÚstart)rQ   rb   s   ` rX   rO   zServe.start_server¤   s2   ø€ ô	9ô
 !×'Ñ'¨tÐ:JÐSXÔYˆŒØ�‰×ÑÕrc   c                 ó8   — | j                   j                  «        y)z$Clear all loaded models from memory.N)rE   Úshutdown©rQ   s    rX   Úreset_loaded_modelszServe.reset_loaded_models­   s   € à×Ñ×$Ñ$Õ&rc   c                 ó  — | j                   j                  «        | j                  j                  «        | j                  r| j                  j	                  «       sy d| j
                  _        | j                  j                  d¬«       y )NTé   )Útimeout)rG   rl   rE   ri   Úis_aliverN   Úshould_exitÚjoinrm   s    rX   Úkill_serverzServe.kill_server±   s`   € Ø×Ñ×'Ñ'Ô)Ø×Ñ×$Ñ$Ô&Ø�|Š| 4§<¡<×#8Ñ#8Ô#:ØØ"&ˆ�‰ÔØ�‰×Ñ !ÐÕ$rc   )NFNNNNNNFNÚautorv   Fi,  Ú	localhosti@  FÚwarningNF)Ú__name__Ú
__module__Ú__qualname__r   ÚstrÚtyperÚArgumentÚboolÚOptionÚintÚfloatrY   rO   rn   ru   r7   rc   rX   r	   r	   !   sh  „ ð quð
 ð ð ð ð ð ð Ødið ØlrØpvØchð àLWØIMØUZØbkØX\ð ñY@à˜s T™z¨>¨5¯>©>Ð?kÔ+lÐlÑmð@ð 'ØØˆE�L‰LÐmÔnðpñ
ð	@ð !Ø�$‰J˜˜Ÿ™Ð*bÔcÐcñ
ð@ð !Ø�$‰J˜˜Ÿ™Ð*^Ô_Ð_ñ
ð@ð 'Ø�$‰J˜˜Ÿ™Ð*]Ô^Ð^ñ
ð@ð"  )Ø�D‰L˜,˜%Ÿ,™,Ð,]Ô^Ð^ñ 
ð#@ð( %Ø�4‰K˜˜Ÿ™Ð+XÔYÐYñ
ð)@ð. 'Ø�$‰J˜˜Ÿ™Ð*^Ô_Ð_ñ
ð/@ð4 ˜4  §¡Ð3_Ô!`Ð`Ñað5@ð6  Ø�$‰J˜˜Ÿ™Ð*ZÔ[Ð[ñ
ð7@ð< ˜#˜|˜uŸ|™|Ð1gÔhÐhÑið=@ð> ˜˜t™ \ U§\¡\Ð7kÔ%lÐlÑmð?@ð@ % T¨<¨5¯<©<Ð=^Ô+_Ð%_Ñ`ðA@ðB !Ø��—‘Ð#lÔmÐmñ
ðC@ðJ ˜˜\˜UŸ\™\Ð/GÔHÐHÑIðK@ðL ˜˜\˜UŸ\™\Ð/DÔEÐEÑFðM@ðN ˜t \ U§\¡\Ð7PÔ%QÐQÑRðO@ðP ˜S , %§,¡,Ð4]Ô"^Ð^Ñ_ðQ@ðR    d¡
¨L¨E¯L©LÐ>SÔ,TÐ TÑUðS@ðT  Ø�,�%—,‘, dÐ1dÔeÐeñ
ðU@ðZ 
ó[@òDò'ó%rc   r	   uð  
Run a FastAPI server to serve models on-demand with an OpenAI compatible API.
Models will be loaded and unloaded automatically based on usage and a timeout.


Endpoints:
    POST /v1/chat/completions â€” Chat completions (streaming + non-streaming).
    POST /v1/completions      â€” Legacy text completions from a prompt.
    GET  /v1/models           â€” Lists available models.
    GET  /health              â€” Health check.

Requires FastAPI and Uvicorn: pip install transformers[serving]
)Ú__doc__r\   rg   Útypingr   r}   Útransformers.utilsr   Útransformers.utils.import_utilsr   r@   r   rA   ry   Úloggerr	   r7   rc   rX   ú<module>rˆ      sK   ðñó Û Ý ã å &Ý >å )ð 
ˆ×	Ñ	˜HÓ	%€÷V%ñ V%ðr€…rc   