+
    "Ý³jg  ã                   óœ   € ^ RI t ^ RIt^ RIt^ RIt ^ RIt^ RIHtHt ^ RIH	t	  ! R R4      tR#   ]
 d   t]! ]4      ! RR4      hRtAii ; i)é    N)ÚFastAPIÚHTTPException)Ú	BaseModelz@GPT-QModel OpenAi serve required dependencies are not installed.zHPlease install via `pip install gptqmodel[openai] --no-build-isolation`.c                   ó^   a € ] tR t^t o R tR tR
V 3R lR lltR tRV 3R lR lltRt	V t
R	# )ÚOpenAiServerc                ó¶   € R V n         \        4       V n        Wn        VP                  V n        VP
                  P                  V n        V P                  4        R # ©N)	Úuvicorn_serverr   ÚappÚmodelÚ	tokenizerÚconfigÚname_or_pathÚmodel_id_or_pathÚsetup_routes)Úselfr   s   &&Ú^/home/luca/screen-checking/.venv/lib/python3.14/site-packages/gptqmodel/utils/openai_server.pyÚ__init__ÚOpenAiServer.__init__   sA   € Ø"ˆÔÜ“9ˆŒØŒ
ØŸ™ˆŒØ %§¡× 9Ñ 9ˆÔØ×ÑÖó    c                óT  a aaa€  ! R  R\         4      o ! R R\         4      o ! V3R lR\         4      oS P                  P                  RSR7      V3R lVVV 3R	 ll4       pS P                  P                  R
4      R 4       pS P                  P                  R4      V 3R l4       pR# )c                   óD   a € ] tR t^!t o . tRtRtRt^tRt	V 3R lt
RtV tR# )Ú0OpenAiServer.setup_routes.<locals>.OpenAiRequesté   ç        g      ð?Nc                ón   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   # )é   r   ÚmessagesÚ
max_tokensÚtemperatureÚtop_pÚnÚstop)ÚstrÚlistÚintÚfloat)ÚformatÚ__classdict__s   "€r   Ú__annotate__Ú=OpenAiServer.setup_routes.<locals>.OpenAiRequest.__annotate__!   sZ   ø‡ ‚ Ù‰Jñ áÑñ ñ Ñ!ñ ñ Ñ$ñ	 ñ
 Ññ ñ ‰Jñ ñ Ñò r   © )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r    r!   r"   r#   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r)   s   @r   ÚOpenAiRequestr   !   s*   ø‡ € àˆHØ!ˆJØ!$ˆKØˆEØˆAØˆD÷ ƒ r   r5   c                   ó0   a € ] tR t^*t o ^ tV 3R ltRtV tR# )Ú7OpenAiServer.setup_routes.<locals>.OpenAiResponseChoicec                ó2   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   # )r   ÚtextÚindex)r$   r&   )r(   r)   s   "€r   r*   ÚDOpenAiServer.setup_routes.<locals>.OpenAiResponseChoice.__annotate__*   s   ø‡ ‚ Ù‰Iñ á‰Nò r   r,   N)r-   r.   r/   r0   r:   r1   r2   r3   r4   s   @r   ÚOpenAiResponseChoicer7   *   s   ø‡ € àˆE÷ ƒ r   r<   c                   ó8   <a € ] tR t^.t o RtRtVV 3R ltRtV tR# )Ú1OpenAiServer.setup_routes.<locals>.OpenAiResponseÚ Útext_completionc                óf   <€ V ^8„  d   Qh/ S[ ;R&   S[ ;R&   S[;R&   S[ ;R&   S[SZ,          ;R&   # )r   ÚidÚobjectÚcreatedr   Úchoices)r$   r&   r%   )r(   r<   r)   s   "€€r   r*   Ú>OpenAiServer.setup_routes.<locals>.OpenAiResponse.__annotate__.   sE   ø‡ ‚ Ù‰Lñ áÑ+ñ ñ ‰Lñ ñ ‰Jñ	 ñ
 Ñ.Õ/Ñ/ò r   r,   N)	r-   r.   r/   r0   rB   rC   r1   r2   r3   )r)   r<   s   @€r   ÚOpenAiResponser>   .   s   ù‡ € ØˆBØ+ˆF÷ „ r   rG   z/v1/chat/completions)Úresponse_modelc                ó   <€ V ^8„  d   QhRS/# )r   Úrequestr,   )r(   r5   s   "€r   r*   Ú/OpenAiServer.setup_routes.<locals>.__annotate__6   s   ø€ ÷ 4	Dñ 4	D¨]ñ 4	Dr   c              “   óº  <"  €  SP                   P                  V P                  R RR7      p\        V\        P
                  4      '       d<   VP                  SP                  P                  4      pRV/pVP                  R4      pMJVP                  SP                  P                  4      pVR,          p\        V4      pVP                  R4      pV P                  R8w  d   R MRp\        P                  ! 4       ;_uu_ 4        SP                  P                  ! RRW0P                  ,           RV P                  R	V P                  R
V P                   RSP                   P"                  RV P$                  RV/VB pRRR4       SP                   P'                  XRVR13,          R R7      p\)        V4       UU	u. uF  w  r‰S! V	VR7      NK  	  p
pp	S! \*        P,                  ! 4        \/        \0        P0                  ! 4       4      SP2                  V
R7      pV#   + '       g   i     L¦; iu up	pi   \4         d   p\7        R\9        T4      R7      hRp?ii ; i5i)TÚpt)Úadd_generation_promptÚreturn_tensorsÚinputsÚ	input_idsr   FÚ
max_lengthr    r!   Únum_return_sequencesÚeos_token_idÚstop_stringsÚ	do_sampleN:NNN)Úskip_special_tokens)r9   r:   )rB   rD   r   rE   iô  )Ústatus_codeÚdetailéÿÿÿÿr,   )r   Úapply_chat_templater   Ú
isinstanceÚtorchÚTensorÚtor   ÚdeviceÚsizeÚdictr    Úinference_modeÚgenerater   r!   r"   rT   r#   Úbatch_decodeÚ	enumerateÚuuidÚuuid4r&   Útimer   Ú	Exceptionr   r$   )rJ   Úmodel_inputsÚgenerate_inputsÚprompt_lengthrQ   rV   ÚoutputsÚgenerated_textsÚiÚgen_textrE   ÚresponseÚerG   r<   r   s   &            €€€r   Úcreate_completionÚ4OpenAiServer.setup_routes.<locals>.create_completion5   s1  øé € ð3DØ#Ÿ~™~×AÑAØ×$Ñ$Ø*.Ø#'ð  Bó  �ô ˜l¬E¯L©L×9Ò9Ø#/§?¡?°4·:±:×3DÑ3DÓ#E�LØ'/°Ð&>�OØ$0×$5Ñ$5°bÓ$9‘Mà#/§?¡?°4·:±:×3DÑ3DÓ#E�LØ ,¨[Õ 9�IÜ&*¨<Ó&8�OØ$-§N¡N°2Ó$6�Mà$+×$7Ñ$7¸3Ô$>™DÀE�	Ü×)Ò)×+Õ+Ø"Ÿj™j×1Ò1ñ 	Ø#0×3EÑ3EÕ#Eð	à$+×$7Ñ$7ð	ð &Ÿm™mð	ð .5¯Y©Yð		ð
 &*§^¡^×%@Ñ%@ð	ð &-§\¡\ð	ð #,ð	ð *ñ	�G÷ ,ð #'§.¡.×"=Ñ"=Ø˜A˜}™~Ð-Õ.Ø(,ð #>ó #�ô (1°Ô'Aôñ
 (B™˜ñ	 )Ø%Ø÷ñ (Bð ñ ñ *ÜŸ*š*›,˜Ü¤§	¢	£Ó,Ø×/Ñ/Ø#ô	�ð  �÷? ,×+üó"øô ô DÜ#°¼CÀ»FÔCÐCûðDüsO   ƒI…C?H2 ÄA7HÅ;>H2 Æ9H,ÇA
H2 ÈIÈH)	È$H2 È2IÈ=IÉIÉIÚ/c                  ó
   € R R/# )Úmessagez/GPT-QModel OpenAI Compatible Server is running.r,   r,   r   r   Ú	read_rootÚ,OpenAiServer.setup_routes.<locals>.read_rootl   s   € àÐPÐQÐQr   z	/shutdownc                  ó,   <€ S P                  4        R R/# )rx   zServer is shutting down...)Úshutdown©r   s   €r   r|   Ú+OpenAiServer.setup_routes.<locals>.shutdownp   s   ø€ à�M‰MŒOØÐ;Ð<Ð<r   N)r   r   ÚpostÚget)r   rt   ry   r|   r5   rG   r<   s   f   @@@r   r   ÚOpenAiServer.setup_routes    s›   û€ ô	œIô 	ô	¤9ô 	÷	0œYô 	0ð 
�‰�‰Ð-¸nˆÓ	M÷4	Dô 4	Dó 
Nð4	Dðl 
�‰�‰�cÓ	ñ	Ró 
ð	Rð 
�‰�‰�kÓ	"ô	=ó 
#ò	=r   c                ó,   <€ V ^8„  d   QhRS[ RS[RS[/# )r   ÚhostÚportÚ
async_mode)r$   r&   Úbool)r(   r)   s   "€r   r*   ÚOpenAiServer.__annotate__u   s'   ø€ ÷ bñ b™#ð b±ð bÁtñ br   c                óJ  a € \         P                  ! S P                  WR R7      p\         P                  ! V4      S n        V 3R lpV'       d=   \
        P                  ! VRR7      pVP                  4        \        RV RV R24       R	# V! 4        \        RV RV R24       R	# )
Úinfo)rƒ   r„   Ú	log_levelc                  ó<   <€ S P                   P                  4        R # r	   )r
   Úrunr}   s   €r   Ú
run_serverÚ&OpenAiServer.start.<locals>.run_servery   s   ø€ Ø×Ñ×#Ñ#Ö%r   F)ÚtargetÚdaemonz>GPT-QModel OpenAi Server has started asynchronously at http://Ú:Ú.z=GPT-QModel OpenAi Server has started synchronously at http://N)	ÚuvicornÚConfigr   ÚServerr
   Ú	threadingÚThreadÚstartÚprint)r   rƒ   r„   r…   r   r�   Úthreads   f&&&   r   r˜   ÚOpenAiServer.startu   s�   ø€ Ü—’ §¡¨tÈ&ÔQˆÜ%Ÿnšn¨VÓ4ˆÔõ	&÷ Ü×%Ò%¨ZÀÔFˆFØ�L‰LŒNÜÐRÐSWÐRXÐXYÐZ^ÐY_Ð_`ÐaÖbáŒLÜÐQÐRVÐQWÐWXÐY]ÐX^Ð^_Ð`Öar   c                ó^   € V P                   e   RV P                   n        \        R4       R # R # )NTz,GPT-QModel OpenAi Server is shutting down...)r
   Úshould_exitr™   r}   s   &r   r|   ÚOpenAiServer.shutdown„   s*   € Ø×ÑÒ*Ø.2ˆD×ÑÔ+ÜÐ@ÖAñ +r   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r   ÚtimeoutÚcheck_interval)r&   r'   )r(   r)   s   "€r   r*   r‡   ‰   s   ø€ ÷ 'ñ '©ð 'Á%ñ 'r   c                óð   € \         P                   ! 4       pV P                  P                  '       gE   \         P                   ! 4       V,
          V8”  d   \        R 4      h\         P                  ! V4       K`  R# )zCGPT-QModel OpenAi server failed to start within the specified time.N)ri   r
   ÚstartedÚTimeoutErrorÚsleep)r   r    r¡   Ú
start_times   &&& r   Úwait_until_readyÚOpenAiServer.wait_until_ready‰   sO   € Ü—Y’Y“[ˆ
Ø×%Ñ%×-×-Ð-Ü�yŠy‹{˜ZÕ'¨'Ô1Ü"Ð#hÓiÐiÜ�JŠJ�~Ö&ñ .r   )r   r   r   r   r
   N)z0.0.0.0éP   T)é   gš™™™™™¹?)r-   r.   r/   r0   r   r   r˜   r|   r§   r2   r3   r4   s   @r   r   r      s2   ø‡ € òòS=÷jbò bòB÷
'÷ 'ð 'r   r   )r–   ri   rg   r]   r“   Úfastapir   r   Úpydanticr   ÚModuleNotFoundErrorÚ	exceptionÚtyper   r,   r   r   Ú<module>r°      sV   ðó Û Û ã ðÛß.Ý"÷w'ó w'øð ô Ù
ˆyŒ/ØJØRóð ûðús   ’0 °A·AÁA