+
    œ°³jes  ã                   ól  € ^ RI t ^ RIt^ 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Ht ^ RIHtHtHt ^ RIt^ RIt^ RIt^ RIt^ RIHtHt ^ RIHt ^ RIHt  ^ RIt]P<                  ! 4       R8w  d   ^ RIt]! 4       '       d-   ^ R	I H!t! ^ R
I"H#t# ^ RI$H%t% ^ RI&H't' ^ RI(H)t)H*t*H+t+H,t,H-t- ^ RI.H/t/ RRRR/t0]1! ]Pd                  ]Pf                  ,           4      t4]1! ]Pd                  ]Pj                  ,           ]Pf                  ,           R,           4      t6RRR/RRR/RRR/RRR/RRR/RRR /R!RR"//t7R#t8R$R%Ps                  ]7Pu                  4       4       R&2t;R' R( lt< ! R) R*4      t= ! R+ R,4      t>R- R. lt?R/ R0 lt@R:R1 R2 lltAR3 R4 ltBR5 R6 ltC]DR78X  d   ]>! R8R97       R# R#   ] d     ELRi ; i);é    N)ÚAsyncIteratorÚ	Awaitable)Ú	AnnotatedÚAny)ÚurljoinÚurlparseÚ
urlunparse)ÚAsyncInferenceClientÚChatCompletionStreamOutput©ÚGenerationConfig)Úis_rich_availableÚWindows)Úfilesize)ÚConsole)ÚLive)ÚMarkdown)Ú	BarColumnÚProgressÚProgressColumnÚ
TextColumnÚTimeElapsedColumn)ÚTextÚhostnameÚ	localhostÚporti@  z .!\"#$%&'()*+,\-/:<=>?@[]^_`{|}~ÚllamaÚtextz5There is a Llama in my lawn, how can I get rid of it?ÚcodezyWrite a Python function that integrates any Python function f(x) numerically over an arbitrary interval [x_start, x_end].Ú
helicopterz4How many helicopters can a human eat in one sitting?Únumbersz4Count to 10 but skip every number ending with an 'e'ÚbirdszWhy aren't birds real?Úsocksz2Why is it important to eat socks after meditating?Únumbers2z$Which number is larger, 9.9 or 9.11?aŒ  

**TRANSFORMERS CHAT INTERFACE**

Chat interface to try out a model. Besides chatting with the model, here are some basic commands:
- **!help**: shows all available commands (set generation settings, save chat, etc.)
- **!status**: shows the current status of the model and generation settings
- **!clear**: clears the current conversation and starts a new one
- **!exit**: closes the interface
am  

**TRANSFORMERS CHAT INTERFACE HELP**

Full command list:
- **!help**: shows this help message
- **!clear**: clears the current conversation and starts a new one
- **!status**: shows the current status of the model and generation settings
- **!example {NAME}**: loads example named `{NAME}` from the config and uses it as the user input.
Available example names: `ú`, `a#  `
- **!set {ARG_1}={VALUE_1} {ARG_2}={VALUE_2}** ...: changes the system prompt or generation settings (multiple
settings are separated by a space). Accepts the same flags and format as the `generate_flags` CLI argument.
If you're a new user, check this basic flag guide: https://huggingface.co/docs/transformers/llm_tutorial#common-options
- **!save {SAVE_NAME} (optional)**: saves the current chat and settings to file by default to
`./chat_history/{MODEL_ID}/chat_{DATETIME}.yaml` or `{SAVE_NAME}` if provided
- **!exit**: closes the interface
c                ó0   € V ^8„  d   QhR\         R\         /# )é   Úbase_urlÚreturn©Ústr)Úformats   "ÚV/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/cli/chat.pyÚ__annotate__r.   j   s   € ÷ Hñ H¤3ð H¬3ñ Hó    c                ó¶   € \        V 4      pVP                  P                  R4      P                  R4      p\	        VP
                  VP                  VRRR34      # )zQReturn the service root of `base_url`, where the serve management endpoints live.Ú/z/v1Ú )r   ÚpathÚrstripÚremovesuffixr	   ÚschemeÚnetloc)r(   Úparsedr3   s   &  r-   Úget_service_root_urlr9   j   sK   € ä�hÓ€FØ�;‰;×Ñ˜cÓ"×/Ñ/°Ó6€DÜ�v—}‘} f§m¡m°T¸2¸rÀ2ÐFÓGÐGr/   c                   óÐ   a € ] tR t^qt o V 3R lR ltV 3R lR ltV 3R lR ltR tV 3R lR	 ltV 3R
 lR lt	RV 3R lR llt
RV 3R lR lltV 3R lR ltV 3R lR ltRtV tR# )ÚRichInterfacec                ó,   <€ V ^8„  d   QhRS[ RS[ RS[ /# )r'   Úmodel_idÚuser_idr(   r*   )r,   Ú__classdict__s   "€r-   r.   ÚRichInterface.__annotate__r   s"   ø€ ÷ !ñ !¡ð !©sð !¹cñ !r/   c                óH   € \        4       V n        Wn        W n        W0n        R # ©N)r   Ú_consoler=   r>   r(   )Úselfr=   r>   r(   s   &&&&r-   Ú__init__ÚRichInterface.__init__r   s   € Ü›	ˆŒØ ŒØŒØ Žr/   c                óz   <€ V ^8„  d   QhRS[ S[S[,          ,          RS[S[S[S[,          R,          3,          /# )r'   Ústreamr)   N)r   r   r   Útupler+   r   )r,   r?   s   "€r-   r.   r@   x   s;   ø€ ÷ ;#ñ ;#Ù¡Ñ.HÕ IÕJð;#á	‰s‘C™#•I Õ$Ð$Õ	%ñ;#r/   c           	   ƒ  óÊ  "  € V P                   P                  R V P                   R24       \        V P                   ^R7      ;_uu_ 4       pRp^ p\        P                  ! 4       pRpVG Rj  x€L
   Rj  x€L
  pVP
                  ^ ,          P                  P                  p\        VP
                  ^ ,          RV4      p\        VRR4      p	V	e   \        V	RV4      pV'       g   Kw  \        P                  ! RR	V4      pW8,          p. p
VP                  4        FO  pV
P                  V4       VP                  R
4      '       d   V
P                  R4       K>  V
P                  R4       KQ  	  \        RP                  V
4      P!                  4       RR7      pVP#                  VRR7       EK<   ELA EL;ED= RRR4       M  + '       g   i     M; i\        P                  ! 4       X,
          pT^ 8”  dQ   X^ 8”  dJ   YM,          pT P                   P                  4        T P                   P                  RT RTR RTR R24       T P                   P                  4        XX3# 5i)z[bold blue]<z>:)ÚconsoleÚrefresh_per_secondr2   NÚfinish_reasonÚusageÚcompletion_tokensz<(/*)(\w*)>z\<\1\2\>z```Ú
z  
zgithub-dark)Ú
code_themeT)Úrefreshz[dim]z tokens in z.1fzs (z tok/s)[/dim])rC   Úprintr=   r   ÚtimeÚchoicesÚdeltaÚcontentÚgetattrÚreÚsubÚ
splitlinesÚappendÚ
startswithr   ÚjoinÚstripÚupdate)rD   rH   Úliver   rO   Ú
start_timerM   ÚtokenÚoutputsrN   ÚlinesÚlineÚmarkdownÚelapsedÚtok_per_secs   &&             r-   Ústream_outputÚRichInterface.stream_outputx   sÿ  é € ð 	�‰×Ñ˜l¨4¯=©=¨/¸Ð<Ô=Ü˜$Ÿ-™-¸A×>Õ>À$ØˆDØ !ÐÜŸš›ˆJØ(,ˆMØ%+Ÿ|˜|÷ )4ð )4�eØŸ-™-¨Õ*×0Ñ0×8Ñ8�Ü '¨¯©°aÕ(8¸/È=Ó Y�ä  w°Ó5�ØÒ$Ü(/°Ð7JÐL]Ó(^Ð%çÙô Ÿ&š& °¸gÓF�à•�ð �Ø ŸO™OÖ-�DØ—L‘L Ô&Ø—‘ u×-Ò-ð Ÿ™ TÖ*àŸ™ VÖ,ñ .ô $ B§G¡G¨E£N×$8Ñ$8Ó$:À}ÔU�ð —‘˜H¨d�×3òS  ,ò )4š|÷ ?×>×>Ð>úô` —)’)“+ 
Õ*ˆØ�QŒ;Ð,¨qÔ0Ø+Õ5ˆKØ�M‰M×ÑÔ!Ø�M‰M×Ñ %Ð(9Ð':¸+ÀgÈcÀ]ÐRUÐVaÐbeÐUfÐfsÐ tÔuØ�‰×ÑÔà�]Ð"Ð"ùsW   ‚A	I#Á!F?Á,F-Á-F?Á1F3Á5F0
Á6F3Á9A,F?Ã&CF?Æ0F3Æ3F?Æ6	I#Æ?G	Ç
BI#c                ó    <€ V ^8„  d   QhRS[ /# ©r'   r)   r*   )r,   r?   s   "€r-   r.   r@   µ   s   ø€ ÷ ñ ‘sñ r/   c                óŒ   € V P                   P                  RV P                   R24      pV P                   P                  4        V# )z!Gets user input from the console.ú[bold red]<z>:
)rC   Úinputr>   rS   )rD   rp   s   & r-   rp   ÚRichInterface.inputµ   s8   € à—‘×#Ñ# k°$·,±,°¸tÐ$DÓEˆØ�‰×ÑÔØˆr/   c                ó:   € V P                   P                  4        R# )zClears the console.N)rC   Úclear)rD   s   &r-   rs   ÚRichInterface.clear»   s   € à�‰×ÑÖr/   c                ó    <€ V ^8„  d   QhRS[ /# )r'   r   r*   )r,   r?   s   "€r-   r.   r@   ¿   s   ø€ ÷ ñ ¡sñ r/   c                ó�   € V P                   P                  RV P                   RV 24       V P                   P                  4        R# )z%Prints a user message to the console.ro   z>:[/ bold red]
N)rC   rS   r>   )rD   r   s   &&r-   Úprint_user_messageÚ RichInterface.print_user_message¿   s6   € à�‰×Ñ˜k¨$¯,©,¨Ð7GÈÀvÐNÔOØ�‰×ÑÖr/   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# )r'   r   Úcolorr*   )r,   r?   s   "€r-   r.   r@   Ä   s   ø€ ÷ ñ ¡ð ©Cñ r/   c                ó|   € V P                   P                  RV RV 24       V P                   P                  4        R# )z,Prints text in a given color to the console.z[bold Ú]N)rC   rS   )rD   r   rz   s   &&&r-   Úprint_colorÚRichInterface.print_colorÄ   s1   € à�‰×Ñ˜f U G¨1¨T¨FÐ3Ô4Ø�‰×ÑÖr/   c                ó,   <€ V ^8„  d   QhRS[ RS[RS[/# )r'   ÚmessageÚdefaultr)   ©r+   Úbool)r,   r?   s   "€r-   r.   r@   É   s"   ø€ ÷ 
(ñ 
(™sð 
(©Tð 
(¹dñ 
(r/   c                óì   € V'       d   RMRpV P                   P                  RV RV R24      pV P                   P                  4        VP                  4       P	                  4       pV'       g   V# VR9   # )zFDisplays a yes/no prompt to the user, returning True for confirmation.zY/nzy/Nz[bold yellow]z (z): >   ÚyÚyes)rC   rp   rS   r_   Úlower)rD   r€   r�   Údefault_hintÚresponses   &&&  r-   ÚconfirmÚRichInterface.confirmÉ   sf   € ç '‘u¨UˆØ—=‘=×&Ñ&¨°w°i¸rÀ,ÀÈsÐ'SÓTˆØ�‰×ÑÔà—>‘>Ó#×)Ñ)Ó+ˆßØˆNà˜<Ñ'Ð'r/   c                ó    <€ V ^8„  d   QhRS[ /# )r'   Úminimal)rƒ   )r,   r?   s   "€r-   r.   r@   Õ   s   ø€ ÷ ñ ¡$ñ r/   c                ó¦   € V P                   P                  \        V'       d   \        M\        4      4       V P                   P                  4        R# )z'Prints the help message to the console.N)rC   rS   r   ÚHELP_STRING_MINIMALÚHELP_STRING)rD   r�   s   &&r-   Ú
print_helpÚRichInterface.print_helpÕ   s.   € à�‰×ÑœH¿GÕ%8ÌÓUÔVØ�‰×ÑÖr/   c                ó    <€ V ^8„  d   QhRS[ /# )r'   Úmodelr*   )r,   r?   s   "€r-   r.   r@   Ú   s   ø€ ÷ Rñ R¡cñ Rr/   c                ó¬  aaa€ \         P                  ! \        \        V P                  4      R ,           R4      RS/RR7      pVP                  4         ! R R\        4      pRRR	R
RRRR/oV P                  P                  \        S4      ^,           ^F,           8¬  oVVV3R lp\        \        R4      \        ^(R7      V! 4       \        4       V P                  R7      pVP                  V! R4      RR7      pRp\        WPP                  RR7      ;_uu_ 4        VP!                  4        EF  pV'       d   VP#                  R4      '       g   K%  \$        P&                  ! VR,          4      p	V	P)                  R4      p
V
R8X  d   V	P)                  RR4      p M¯V
R8X  d   \+        V	P)                  RR4      4      hV
R8X  g   K™  V	P)                  R 4      pV	P)                  R!4      pV! V4      pV'       d:   VR8X  d   R"MR#pVP-                  WmVR$,          VP)                  R%4      VR&7       EK  VP-                  Wm^ RR'7       EK  	  RRR4       V'       d*   V P                  P/                  \1        R(S R)24      4       M(V P                  P/                  \1        R(S R*24      4       V P                  P/                  4        R#   + '       g   i     L…; i)+r1   Ú
load_modelr”   T)ÚjsonrH   c                   ó&   a € ] tR t^àt o R tRtV tR# )Ú3RichInterface.print_model_load.<locals>.StatsColumnc                óÖ  € VP                   '       g   \        R 4      # VP                  P                  R4      R8X  dø   \        P
                  ! \        VP                  4      4      p\        P
                  ! \        VP                   4      4      pVP                  '       d.   R\        P
                  ! \        VP                  4      4       R2MR pVP                  e?   R\        VP                  ^<,          4       R\        VP                  ^<,          4      R 2pMR p\        V RV V V 2RR	7      # \        \        VP                  4       R\        VP                   4       24      # )
r2   ÚunitÚbytesz  z/sÚ:Ú02dr1   zprogress.download)Ústyle)
Útotalr   ÚfieldsÚgetr   ÚdecimalÚintÚ	completedÚspeedÚtime_remaining)rD   ÚtaskÚdoneÚtotr¦   Úetas   &&    r-   ÚrenderÚ:RichInterface.print_model_load.<locals>.StatsColumn.renderá   s  € Ø—z—z�zÜ ›8�Oà—;‘;—?‘? 6Ó*¨gÔ5Ü#×+Ò+¬C°·±Ó,?Ó@�DÜ"×*Ò*¬3¨t¯z©z«?Ó;�CØJNÏ*Ï*È*˜b¤×!1Ò!1´#°d·j±j³/Ó!BÐ CÀ2ÑFÐZ\�Eà×*Ñ*Ò6Ø "¤3 t×':Ñ':¸bÕ'@Ó#AÐ"BÀ!ÄCÈ×H[ÑH[Ð^`ÕH`ÓDaÐbeÐCfÐg™à ˜ä 4 &¨¨#¨¨u¨g°c°UÐ ;ÐCVÔWÐWÜœs 4§>¡>Ó2Ð3°1´S¸¿¹³_Ð4EÐFÓGÐGr/   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r¬   Ú__static_attributes__Ú__classdictcell__©r?   s   @r-   ÚStatsColumnr™   à   s   ø‡ € ÷Hð Hr/   r¶   Ú	processorzLoading processorÚconfigzLoading configÚdownloadzDownloading filesÚweightszLoading into memoryc                 óH   <€ SP                  W 4      pS'       d   S R V 2# V# )u     â†’  )r¢   )Ú	stage_keyÚ
stage_textr”   Úshow_model_prefixÚstage_labelss   & €€€r-   Ú_labelÚ.RichInterface.print_model_load.<locals>._labelý   s-   ø€ Ø%×)Ñ)¨)Ó?ˆJß Ø˜ ¨
 |Ð4Ð4ØÐr/   z[bold]{task.description})Ú	bar_width)rK   N)r    F)rK   Ú	transients   data: :é   NNÚstatusÚreadyÚcachedÚerrorr€   zUnknown errorÚloadingÚstageÚprogressrœ   ÚitemsÚcurrentr    )Údescriptionr¥   r    r›   )rÎ   r¥   r    z_*z was already loaded.*_z is warm.*_)ÚrequestsÚpostr   r9   r(   Úraise_for_statusr   rC   ÚwidthÚlenr   r   r   r   Úadd_taskr   Ú
iter_linesr]   r—   Úloadsr¢   ÚRuntimeErrorr`   rS   r   )rD   r”   r‰   r¶   rÀ   rË   Útask_idrÇ   rf   ÚeventrÅ   rÊ   ÚprogÚlabelr›   r¾   r¿   s   &f             @@r-   Úprint_model_loadÚRichInterface.print_model_loadÚ   sb  ú€ Ü—=’=ÜÔ(¨¯©Ó7¸#Õ=¸|ÓLÐT[Ð]bÐScÐlpô
ˆð 	×!Ñ!Ô#ô	Hœ.ô 	Hð& Ð,ØÐ&ØÐ+ØÐ,ð	
ˆð !ŸM™M×/Ñ/´3°u³:Àµ>ÀBÕ3FÑFÐ÷	ô ÜÐ1Ó2Ü Ô#Ù‹MÜÓØ—M‘Mô
ˆð ×#Ñ#¡F¨;Ó$7¸tÐ#ÓDˆØˆä�(§M¡M¸T×BÖBØ ×+Ñ+×-�ß 4§?¡?°9×#=Ò#=ÙÜŸ
š
 4¨¥8Ó,�ØŸ™ 8Ó,�à˜WÔ$Ø"ŸY™Y x°Ó7�FÙà˜WÔ$Ü& u§y¡y°¸OÓ'LÓMÐMà˜YÖ&Ø!ŸI™I gÓ.�EØ Ÿ9™9 ZÓ0�DÙ" 5›M�EçØ*/°:Ô*=™wÀ7˜Ø Ÿ™Ø#À$ÀyÅ/ÐY]×YaÑYaÐbiÓYjÐquð (÷ ð !Ÿ™¨ÈaÐW[˜×\ñ1 .÷ C÷6 Ø�M‰M×Ñ¤¨2¨e¨WÐ4JÐ)KÓ LÕMà�M‰M×Ñ¤¨2¨e¨W°KÐ)@Ó AÔBØ�‰×ÑÖ÷? C×Bús    Ä3KÅA1KÇ1KÇ4AKËK	c                ó    <€ V ^8„  d   QhRS[ /# )r'   r¸   r   )r,   r?   s   "€r-   r.   r@   .  s   ø€ ÷ ñ Ñ#3ñ r/   c                óÈ   € V P                   P                  RV P                   R24       V P                   P                  RV 24       V P                   P                  4        R# )zFPrints the status of the model and generation settings to the console.z[bold blue]Model: rP   z[bold blue]N)rC   rS   r=   )rD   r¸   s   &&r-   Úprint_statusÚRichInterface.print_status.  sK   € à�‰×ÑÐ0°·±°¸rÐBÔCØ�‰×Ñ˜k¨&¨Ð2Ô3Ø�‰×ÑÖr/   )rC   r(   r=   r>   N)F)r¯   r°   r±   r²   rE   rj   rp   rs   rw   r}   rŠ   r‘   rÜ   rà   r³   r´   rµ   s   @r-   r;   r;   q   sh   ø‡ € ÷!ð !÷;#ð ;#÷zð ò÷ð ÷
ð ÷

(ò 
(÷ò ÷
Rð R÷hö r/   r;   c                   ó˜   a € ] tR tRt o RtR]R,           R]R,           2RRRRRR3V 3R	 lR
 llt]R 4       tV 3R lR lt	R t
RtV tR# )ÚChati5  ú(Chat with a model from the command line.zhttp://r   r�   r   Nz./chat_history/c                ór  <€ V ^8„  d   QhRS[ S[S[P                  ! RR7      3,          RS[ S[R,          S[P                  ! RR7      3,          RS[ S[S[,          R,          S[P                  ! RR7      3,          R	S[ S[R,          S[P
                  ! R
R7      3,          RS[ S[R,          S[P
                  ! RR7      3,          RS[ S[S[P
                  ! RR7      3,          RS[ S[R,          S[P
                  ! RR7      3,          RS[ S[R,          S[P
                  ! RR7      3,          RR/	# )r'   r=   z9ID of the model to use (e.g. 'HuggingFaceTB/SmolLM3-3B').)Úhelpr(   Nz7Base url to connect to (e.g. http://localhost:8000/v1).Úgenerate_flagsa¦  Flags to pass to `generate`, using a space as a separator between flags. Accepts booleans, numbers, and lists of integers, more advanced parameterization should be set through --generation-config. Example: `transformers chat <model_id> <base_url> max_new_tokens=100 do_sample=False eos_token_id=[1,2]`. If you're a new user, check this basic flag guide: https://huggingface.co/docs/transformers/llm_tutorial#common-optionsÚuserzKUsername to display in chat interface. Defaults to the current user's name.Úsystem_promptzSystem prompt.Úsave_folderzFolder to save chat history.Úexamples_pathz"Path to a yaml file with examples.Úgeneration_configzÏPath to a local generation config file or to a HuggingFace repo containing a `generation_config.json` file. Other generation settings passed as CLI arguments will be applied on top of this generation config.r)   )r   r+   ÚtyperÚArgumentÚlistÚOption)r,   r?   s   "€r-   r.   ÚChat.__annotate__:  sO  ø€ ÷ D'ñ D'á™C¡§¢Ð5pÔ!qÐqÕrðD'ñ Ù�$�J™ŸšÐ,eÔfÐfõ
ðD'ñ "Ù‘�I˜ÕÙ�NŠNð[ôð	õ
ðD'ñ& Ù�$�JÙ�LŠLÐkÔlðnõ
ð'D'ñ. !¡ t¥©U¯\ª\Ð?OÔ-PÐ!PÕQð/D'ñ0 ™s¡E§L¢LÐ6TÔ$UÐUÕVð1D'ñ2 !¡ t¥©U¯\ª\Ð?cÔ-dÐ!dÕeð3D'ñ6 %Ù�$�JÙ�LŠLð gôðõ
ð7D'ðB 
ñCD'r/   c	                ó2  € W n         \        V P                   4      p	V	P                  \        R,          8X  d8   V	P                  \        R,          8X  d   V P                  V P                   4       Wn        WPn        W`n        \        V4      p
V
P                  RRR7       V
P                  ! R/ \        V4      B  W n        RVRVRV P                  P                  4       /V n        Ve   TM	\        4       V n        V'       d9   \#        V4      ;_uu_ 4       p\$        P&                  ! V4      V n        R	R	R	4       M\*        V n        \-        4       '       g   \/        R
4      h\0        P2                  ! V P5                  4       4       R	#   + '       g   i     LQ; i)rä   r   r   Té   )Ú	do_sampleÚmax_new_tokensr(   r=   r¸   NzHYou need to install rich to use the chat interface. (`pip install rich`)r®   )r(   r   r   ÚDEFAULT_HTTP_ENDPOINTr   Úcheck_healthr=   ré   rê   Úload_generation_configr`   Úparse_generate_flagsr¸   Úto_dictÚsettingsÚget_usernamerè   ÚopenÚyamlÚ	safe_loadÚexamplesÚDEFAULT_EXAMPLESr   ÚImportErrorÚasyncioÚrunÚ
_inner_run)rD   r=   r(   rç   rè   ré   rê   rë   rì   r8   r¸   Úfs   &&&&&&&&&   r-   rE   ÚChat.__init__:  s1  € ðF !Œä˜$Ÿ-™-Ó(ˆØ�?‰?Ô3°JÕ?Ô?ÀFÇKÁKÔShÐioÕSpÔDpØ×Ñ˜dŸm™mÔ,à ŒØ*ÔØ&Ôô (Ð(9Ó:ˆØ�‰ °SˆÔ9Ø�ŠÑ=Ô,¨^Ó<Ò=ØŒà# X¨z¸8ÀXÈtÏ{É{×ObÑObÓOdÐeˆŒð !Ò,‘D´,³.ˆŒ	÷ Ü�m×$Ô$¨Ü $§¢¨qÓ 1�”÷ %Ð$ô -ˆDŒMô !×"Ò"ÜÐhÓiÐiô 	�Š�D—O‘OÓ%Ö&÷ %×$ús   ÄFÆF	c                ó  € \        \        V 4      R ,           R4      p \        P                  ! V4      pVP                  ^È8w  d   \        RV  RVP                   R24      h R#   \        P                   d    \        RT  R24      hi ; i)r1   ÚhealthzThe server running on z returned status code z on health check (/health).zNo server currently running on z™. To run a local server, please run `transformers serve` in aseparate shell. Find more information here: https://huggingface.co/docs/transformers/servingT)r   r9   Úhttpxr¢   Ústatus_codeÚ
ValueErrorÚConnectError)ÚurlÚ
health_urlÚoutputs   &  r-   r÷   ÚChat.check_health€  s£   € äÔ1°#Ó6¸Õ<¸hÓGˆ
ð
	Ü—Y’Y˜zÓ*ˆFØ×!Ñ! SÔ(Ü Ø,¨S¨EÐ1GÈ×HZÑHZÐG[Ð[vÐwóð ð )ñ øô ×!Ñ!ô 	ÜØ1°#°ð 7oð póð ð	ús   žAA$ Á$%B	c                ó    <€ V ^8„  d   QhRS[ RS[RS[S[ S[S[ S[ 3,          3,          RS[RS[S[,          RS[S[S[,          S[3,          /# )r'   Ú
user_inputÚ	interfacer   r¸   Úchatr)   )r+   r;   Údictr   rï   rI   )r,   r?   s   "€r-   r.   rñ   ‘  st   ø€ ÷ H+ñ H+áðH+ñ !ðH+ñ ‘s™D¡¡c �NÐ*Õ+ð	H+ñ
 !ðH+ñ ‘4�jðH+ñ 
‰t‘D�zÑ+Ð+Õ	,ñH+r/   c                ó”  € RpVR8X  d(   \        V P                  4      pVP                  4        EM•VR8X  d   VP                  4        EM|VP	                  R4      '       dÅ   \        VP                  4       4      ^8  d§   VP                  4       p\        V4      ^8X  d
   V^,          ML\        P                  P                  V P                  V P                  R\        P                  ! R4       R24      p\        W…V P                  R7       VP!                  R	V R
2RR7       EM¡VP	                  R4      '       do   VR,          P#                  4       p	V	P                  4       p	V	 F$  p
RV
9  g   K  VP!                  RV
 R2RR7        EM;	  VP$                  ! R / \'        V	4      B  EMVP	                  R4      '       dÃ   \        VP                  4       4      ^8X  d¥   VP                  4       ^,          pW³9   dT   VP                  4        . pVP)                  W;,          R,          4       VP+                  RRRW;,          R,          /4       MwRV R\-        VP/                  4       4       R2pVP!                  VRR7       MCVR8X  d   VP1                  VR7       M)RpVP!                  RV R2RR7       VP                  4        WVV3# )!z‹
Handles all user commands except for `!exit`. May update the chat history (e.g. reset it) or the
generation config (e.g. set a new flag).
Tú!clearú!helpú!saveÚchat_ú%Y-%m-%d_%H-%M-%Sú.json©Úfilenamer  rû   úChat saved to Ú!Úgreen©r   rz   ú!setºé   NNÚ=ú(Invalid flag format, missing `=` after `ú;`. Please use the format `arg_1=value_1 arg_2=value_2 ...`.Úredú!exampler   Úrolerè   rW   úExample ú* not found in list of available examples: Ú.ú!status©r¸   FÚ'ú/' is not a valid command. Showing help message.r®   )Únew_chat_historyré   rs   r‘   r]   rÓ   ÚsplitÚosr3   r^   rê   r=   rT   ÚstrftimeÚ	save_chatrû   r}   r_   r`   rù   rw   r\   rï   Úkeysrà   )rD   r  r  r   r¸   r  Úvalid_commandÚsplit_inputr  Únew_generate_flagsÚflagÚexample_nameÚexample_errors   &&&&&&       r-   Úhandle_non_exit_user_commandsÚ"Chat.handle_non_exit_user_commands‘  s•  € ð ˆà˜Ô!Ü# D×$6Ñ$6Ó7ˆDØ�O‰OÖà˜7Ô"Ø× Ñ Ö"à×"Ñ" 7×+Ò+´°J×4DÑ4DÓ4FÓ0GÈ!Ô0KØ$×*Ñ*Ó,ˆKô �{Ó# qÔ(ð ˜A–ä—W‘W—\‘\ $×"2Ñ"2°D·M±MÀUÌ4Ï=Ê=ÐYlÓKmÐJnÐnsÐCtÓuð ô
 ˜x¸T¿]¹]ÕKØ×!Ñ!¨¸°zÀÐ'CÈ7Ð!ÖSà×"Ñ" 6×*Ò*ð ",¨B¥×!5Ñ!5Ó!7ÐØ!3×!9Ñ!9Ó!;Ðã*�Ø˜d–?Ø×)Ñ)àFÀtÀfð MAð Að $ð *ô ò ñ +ð —’ÑIÔ 4Ð5GÓ HÔIà×"Ñ" :×.Ò.´3°z×7GÑ7GÓ7IÓ3JÈaÔ3OØ%×+Ñ+Ó-¨aÕ0ˆLØÔ'Ø—‘Ô!Ø�Ø×,Ñ,¨XÕ-CÀFÕ-KÔLØ—‘˜V V¨Y¸Õ8NÈvÕ8VÐWÕXð ˜|˜nÐ,VÔW[Ð\d×\iÑ\iÓ\kÓWlÐVmÐmnÐoð ð ×%Ñ%¨=ÀÐ%ÕFà˜9Ô$Ø×"Ñ"¨&Ð"Õ1ð "ˆMØ×!Ñ!¨¨:¨,Ð6eÐ'fÐnsÐ!ÔtØ× Ñ Ô"à FÐ*Ð*r/   c           
   ƒ  óö	  "  € \        V P                  V P                  V P                  R 7      pVP	                  4        \        V P                  4      pVP                  RR7       VP                  V P                  4       V P                  p\        V P                  R7      ;_uu_4       GRj  x€L
 pRp  Ve   TpRpVP                  V4       MVP                  4       pVR8X  d   EMÆVR8X  d(   \        V P                  4      pVP	                  4        Kc  VR8X  d   VP                  4        K|  VP                  R4      '       dÆ   \        VP                  4       4      ^8  d¨   VP                  4       p\        V4      ^8X  d
   V^,          ML\         P"                  P%                  V P&                  V P                  R	\(        P*                  ! R
4       R24      p\-        W‚V P.                  R7       VP1                  RV R2RR7       EKX  VP                  R4      '       do   VR,          P3                  4       p	V	P                  4       p	V	 F#  p
RV
9  g   K  VP1                  RV
 R2RR7        M	  VP4                  ! R,/ \7        V	4      B  EKÝ  VP                  R4      '       dí   \        VP                  4       4      ^8X  dÏ   VP                  4       ^,          pW°P8                  9   dj   VP	                  4        . pVP                  V P8                  V,          R,          4       VP;                  RRRV P8                  V,          R,          /4       M°RV R\=        V P8                  P?                  4       4       R2pVP1                  VRR7       MrVR8X  d   VPA                  VR 7       EKü  VP                  R4      '       d+   VP1                  R!V R"2RR7       VP                  4        EK=  VP;                  RRRV/4       R#VPC                  4       R$V P                  /pVPE                  VRV P                  VR%7      pVPG                  V4      G Rj  x€L
 w  ppVP;                  RR&RV/4       VR'8X  d2   VP1                  R(R)4       VPI                  R*4      '       d   R+pEKõ  EKø  EKû  RRR4      GRj  x€L
  R#  EL Ll  \J         d     K%  i ; i L  + GRj  x€L 
 '       g   i     R# ; i5i)-)r=   r>   r(   T)r�   )r(   Nz!exitr  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r'  r(  r)  r*  r+  r   r,  rè   rW   r-  r.  r/  r0  r1  r2  r3  rì   r”   )rH   r”   Ú
extra_bodyÚ	assistantÚlengthz2Generation stopped after reaching the token limit.ÚyellowzContinue generating?u'   Please continue. Do not repeat text.â€�r®   )&r;   r=   rè   r(   rs   r4  ré   r‘   rÜ   r¸   r
   rw   rp   r]   rÓ   r5  r6  r3   r^   rê   rT   r7  r8  rû   r}   r_   r`   rù   r   r\   rï   r9  rà   Úto_json_stringÚchat_completionrj   rŠ   ÚKeyboardInterrupt)rD   r  r  r¸   ÚclientÚpending_user_inputr  r;  r  r<  r=  r>  r?  rC  rH   Úmodel_outputrM   s   &                r-   r  ÚChat._inner_runÛ  s­  é € Ü!¨4¯=©=À$Ç)Á)ÐVZ×VcÑVcÔdˆ	Ø�‰ÔÜ × 2Ñ 2Ó3ˆð 	×Ñ TÐÔ*Ø×"Ñ" 4§=¡=Ô1à—‘ˆä'°·±×?×?Õ?À6Ø-1ÐØðfØ)Ò5Ø%7˜
Ø-1Ð*Ø!×4Ñ4°ZÕ@à%.§_¡_Ó%6˜
ð " WÔ,Ùà# xÔ/Ü/°×0BÑ0BÓC˜Ø!Ÿ™Ô)Ù à# wÔ.Ø!×,Ñ,Ô.Ù à#×.Ñ.¨w×7Ò7¼CÀ
×@PÑ@PÓ@RÓ<SÐVWÔ<WØ&0×&6Ñ&6Ó&8˜ô  # ;Ó/°1Ô4ð (¨žNä!#§¡§¡Ø $× 0Ñ 0°$·-±-À5ÌÏÊÐWjÓIkÐHlÐlqÐAró"ð !ô "¨8ÈÏÉÕWØ!×-Ñ-°^ÀHÀ:ÈQÐ3OÐW^Ð-Ô_Ú à#×.Ñ.¨v×6Ò6ð .8¸­^×-AÑ-AÓ-CÐ*Ø-?×-EÑ-EÓ-GÐ*ã$6˜DØ"¨$žØ )× 5Ñ 5à*RÐSWÐRXð YMð )Mð +0ð !6ô !"ñ !&ñ %7ð #ŸMšMÑUÔ,@ÐASÓ,TÒUÚ à#×.Ñ.¨z×:Ò:¼sÀ:×CSÑCSÓCUÓ?VÐZ[Ô?[Ø'1×'7Ñ'7Ó'9¸!Õ'<˜Ø'¯=©=Ô8Ø%ŸO™OÔ-Ø#%˜DØ%×8Ñ8¸¿¹À|Õ9TÐU[Õ9\Ô]Ø ŸK™K¨°¸ÀDÇMÁMÐR^ÕD_Ð`fÕDgÐ(hÕià.6°|°nÐDnÔosÐtx÷  uBñ  uB÷  uGñ  uGó  uIó  pJð  oKð  KLð  -M˜MØ%×1Ñ1°}ÈEÐ1ÕRà# yÔ0Ø!×.Ñ.°fÐ.Ô=Ú à#×.Ñ.¨s×3Ò3Ø!×-Ñ-Ø#$ Z LÐ0_Ð!`Ðhmð .ô ð "×,Ñ,Ô.Ú ð Ÿ™ V¨V°YÀ
Ð$KÔLð ,¨V×-BÑ-BÓ-DØ §¡ð"�Jð
 $×3Ñ3ØØ#Ø"Ÿm™mØ#-ð	 4ó �Fð 9B×8OÑ8OÐPVÓ8W×2WÑ/�L -à—K‘K ¨°iÀÐ NÔOà$¨Ô0Ø!×-Ñ-Ð.bÐdlÔmØ$×,Ñ,Ð-C×DÒDØ1ZÐ.Ú$ò Eò 1÷G @×?Ô?ñ~ 3Xøô )ô Úðú÷Q @×?×?Ó?üs   ‚B-S9Â/SÂ0S9Â3SÂ81SÃ)SÃ+,SÄSÄSÄ0SÄ2SÅ	CSÈSÈSÈ%0SÉ6SÊSÊSÊ*DSÎ/SÎ2SÏ	'SÏ0SÏ3A&SÑSÑASÒ&SÒ(	SÒ1S9Ò<SÒ=S9ÓSÓSÓSÓSÓSÓS9ÓS6	Ó"S%Ó#
S6	Ó.S6	Ó0	S9)r(   r¸   r   r=   rê   rû   ré   rè   )r¯   r°   r±   r²   Ú__doc__rö   rE   Ústaticmethodr÷   r@  r  r³   r´   rµ   s   @r-   rã   rã   5  s|   ø‡ € Ù2ð Ð+¨JÕ7Ð8¸Ð:OÐPVÕ:WÐ9XÐYð ð
 ØTXØYjØhlð ÷AD'ò D'ðL ñó ð÷ H+ð H+÷Ttð tr/   rã   c                ó>   € V ^8„  d   QhR\         R,          R\        /# )r'   rì   Nr)   )r+   r   )r,   s   "r-   r.   r.   R  s#   € ÷ 	Cñ 	C¬c°D­jð 	CÔ=Mñ 	Cr/   c                 ó   € V f   \        4       # RV 9   dU   \        P                  P                  V 4      p\        P                  P	                  V 4      p\         P
                  ! W4      # \         P
                  ! V 4      # )Nr  )r   r6  r3   ÚdirnameÚbasenameÚfrom_pretrained)rì   rR  r  s   &  r-   rø   rø   R  se   € ØÒ ÜÓ!Ð!àÐ#Ô#Ü—'‘'—/‘/Ð"3Ó4ˆÜ—7‘7×#Ñ#Ð$5Ó6ˆÜ×/Ò/°ÓBÐBä×/Ò/Ð0AÓBÐBr/   c                óT   € V ^8„  d   QhR\         \        ,          R,          R\        /# )r'   rç   Nr)   )rï   r+   r  )r,   s   "r-   r.   r.   ^  s#   € ÷ 7$ñ 7$¬¬c­°TÕ)9ð 7$¼dñ 7$r/   c           	     óÐ  € V e   \        V 4      ^ 8X  d   / # V  Uu. uF  pRV9  g   K  VNK  	  ppV'       d*   \        P                  ! RRP                  V4       R24      hV  Uu/ uFB  pRVP	                  R^4      ^ ,          ,           R,           VP	                  R^4      ^,          bKD  	  ppVP                  4        UUu/ uF,  w  rEYEP                  4       R9   d   VP                  4       MTbK.  	  pppVP                  4        UUu/ uF  w  rEYER8X  d   R	MTbK  	  pppR
 R lpVP                  4        UUu/ uF  w  rEYF! V4      '       g   RV R2MTbK  	  pppRP                  VP                  4        UUu. uF  w  rEV RV 2NK  	  upp4      pRV,           R,           pVP                  RR	4      pVP                  RR4      pVP                  RR4      pVP                  RR4      pVP                  RR4      p \        P                  ! V4      pV# u upi u upi u uppi u uppi u uppi u uppi   \        P                   d    \        RT  RT 24      hi ; i)zUParses the generate flags from the user input into a dictionary of `generate` kwargs.r'  r(  r%   r)  Ú"ÚtrueÚfalseÚNoneÚnullc                ó0   € V ^8„  d   QhR\         R\        /# )r'   Úsr)   r‚   )r,   s   "r-   r.   Ú*parse_generate_flags.<locals>.__annotate__w  s   € ÷ /ñ /”Sð /œTñ /r/   c                 óf   € V P                  R 4      p V P                  RR^4      P                  4       # )Ú-r/  r2   )ÚremoveprefixÚreplaceÚisdigit)r]  s   &r-   Ú	is_numberÚ'parse_generate_flags.<locals>.is_numberw  s,   € à�N‰N˜3ÓˆØ�y‰y˜˜b !Ó$×,Ñ,Ó.Ð.r/   z, z: Ú{Ú}z"null"z"true"z"false"z"[Ú[z]"r|   zPFailed to convert `generate_flags` into a valid JSON object.
`generate_flags` = z
Converted JSON string = )rX  rY  )rÓ   rí   ÚBadParameterr^   r5  rÌ   r‡   rb  r—   rÖ   ÚJSONDecodeErrorr  )	rç   r=  Úinvalid_flagsÚgenerate_flags_as_dictÚkÚvrd  Úgenerate_flags_stringÚprocessed_generate_flagss	   &        r-   rù   rù   ^  s—  € àÒ¤ ^Ó!4¸Ô!9Øˆ	á&4ÓH¡n˜d¸À4¹—T�T¡n€MÐHßÜ× Ò Ø6°v·{±{À=Ó7QÐ6Rð S1ð 1ó
ð 	
ñ drÓrÑcqÐ[_˜c D§J¡J¨s°AÓ$6°qÕ$9Õ9¸CÕ?ÀÇÁÈCÐQRÓASÐTUÕAVÒVÑcqÐÐrð
 Ka×JfÑJfÔJhôÙJhÁ$À!ˆŸ™›	Ð%6Ô6ˆ1�7‰7Œ9¸AÒ=ÑJhð ñ ð Ka×JfÑJfÔJhÔiÑJhÁ$À!˜a°¬;¡¸AÒ=ÑJhÐÑiõ/ð
 Rh×QmÑQmÔQoÔpÑQoÉÈ˜a°¸1·² 1 Q C q¡À1ÒDÑQoÐÑpð
 !ŸI™IÐ?U×?[Ñ?[Ô?]Ô&^Ñ?]±t°q¨!¨¨B¨q¨c£{Ñ?]Ò&^Ó_Ðð  Ð"7Õ7¸#Õ=Ðð 2×9Ñ9¸(ÀFÓKÐØ1×9Ñ9¸(ÀFÓKÐØ1×9Ñ9¸)ÀWÓMÐØ1×9Ñ9¸$ÀÓDÐØ1×9Ñ9¸$ÀÓDÐð
Ü#'§:¢:Ð.CÓ#DÐ ð $Ð#ùòe Iùò sùóùó jùó qùó
 '_øô ×Ñô 
Üð$Ø$2Ð#3Ø(Ð)>Ð(?ðAó
ð 	
ð
ús5   ›	H©HÁ&AH!Ã2H&ÄH,Ä=!H2Å?H8
ÈH> È>'I%c                óT   € V ^8„  d   QhR\         R,          R\        \        ,          /# )r'   ré   Nr)   ©r+   rï   r  )r,   s   "r-   r.   r.   ˜  s&   € ÷ Sñ S¤C¨$¥Jð S¼$¼t½*ñ Sr/   c                ó$   € V '       d   RRRV /.# . # )z Returns a new chat conversation.r,  ÚsystemrW   r®   )ré   s   &r-   r4  r4  ˜  s   € ç=JˆV�X˜y¨-Ð8Ð9ÐRÐPRÐRr/   c                ó^   € V ^8„  d   QhR\         R\        \        ,          R\        R\         /# )r'   r  r  rû   r)   rr  )r,   s   "r-   r.   r.   �  s,   € ÷ %ñ %œð %¤4¬¥:ð %¼ð %Ä#ñ %r/   c                óD  € \         P                  ! \         P                  P                  V 4      RR7       \	        V R4      ;_uu_ 4       p\
        P                  ! RVRV/V^R7       RRR4       \         P                  P                  V 4      #   + '       g   i     L/; i)z!Saves the chat history to a file.T)Úexist_okÚwrû   Úchat_history)ÚindentN)r6  Úmakedirsr3   rR  rý   r—   ÚdumpÚabspath)r  r  rû   r  s   &&& r-   r8  r8  �  sf   € ä‡K‚K”—‘—‘ Ó)°DÕ9Ü	ˆh˜×	Ô	 Ü�	Š	�:˜x¨¸Ð>ÀÈ!ÕL÷ 
ä�7‰7�?‰?˜8Ó$Ð$÷ 
×	ús   Á
BÂB	c                ó$   € V ^8„  d   QhR\         /# rm   r*   )r,   s   "r-   r.   r.   ¥  s   € ÷ 1ñ 1”cñ 1r/   c                 óÆ   € \         P                  ! 4       R8X  d   \        P                  ! 4       # \        P
                  ! \        P                  ! 4       4      P                  # )z)Returns the username of the current user.r   )Úplatformrt  r6  ÚgetloginÚpwdÚgetpwuidÚgetuidÚpw_namer®   r/   r-   rü   rü   ¥  s8   € ä‡‚Ó˜IÔ%Ü�{Š{‹}Ðä�|Š|œBŸIšI›KÓ(×0Ñ0Ð0r/   Ú__main__z meta-llama/Llama-3.2-3b-Instruct)r=   rB   )Er  r—   r6  r€  rY   ÚstringrT   Úcollections.abcr   r   Útypingr   r   Úurllib.parser   r   r	   r
  rÏ   rí   rþ   Úhuggingface_hubr
   r   Útransformersr   Útransformers.utilsr   Úreadliner  rt  r‚  Úrichr   Úrich.consoler   Ú	rich.liver   Úrich.markdownr   Úrich.progressr   r   r   r   r   Ú	rich.textr   rö   ÚsetÚascii_lettersÚ
whitespaceÚALLOWED_KEY_CHARSÚdigitsÚALLOWED_VALUE_CHARSr  r�   r^   r9  r�   r9   r;   rã   rø   rù   r4  r8  rü   r¯   r®   r/   r-   Ú<module>r›     sÌ  ðó Û Û 	Û Û 	Û Û ß 4ß !ß 6Ñ 6ã Û Û Û ß Lå )Ý 0ð	Ûð
 ‡?‚?Ó˜	Ô!Ûá×ÒÝÝ$ÝÝ&ß`Õ`Ýà# [°&¸$Ð?Ð Ù˜×,Ñ,¨v×/@Ñ/@Õ@ÓAÐ ÙØ
×Ñ˜6Ÿ=™=Õ(¨6×+<Ñ+<Õ<Ð?bÕbóÐ ð
 ˆfÐMÐNØ
Øð)ðð �6ÐQÐRØ�ÐNÐOØˆfÐ.Ð/ØˆfÐJÐKØ�Ð?Ð@ðÐ ð 	Ð ð	ð "Ÿ;™;Ð'7×'<Ñ'<Ó'>Ó?Ð@ð Að€õ&H÷Añ A÷HZñ Zõz	Cõ7$÷tSõ
%õ1ð ˆzÔÙÐ4×5ñ øðQ ô 	âð	ús   ÁF( Æ(F3Æ2F3