+
    ~j(                    <   ^ RI Ht ^ 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 ^ RIHt ^ RIHtHtHt ^ RIHt ^ 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" ^RI#H$t$ ^t%^t&R R lt' ! R R]4      t( ! R R]4      t) ! R R]
4      t*R# )    )annotationsN)ABCabstractmethod)Anyerrors)LanguageCodePluginllm)_InferenceRunner)InferenceExecutor)get_job_context)hw)logger)HG_MODELMODEL_REVISIONSONNX_FILENAMEEOUModelType)__version__c               (    V ^8  d   QhRRRRRRRR/# )   repo_idstrfilenamekwargsr   return )formats   "w/Users/mitch_tango/dev/rabbit-r1-livekit/agent/.venv/lib/python3.14/site-packages/livekit/plugins/turn_detector/base.py__annotate__r       s(      3 #       c                    ^ RI Hp  V! R	RV RV/VB pV#   \        P                  \        3 d,    \
        P                  ! RT R24       \        RT R24      Rhi ; i)
r   )hf_hub_downloadr   r   zCould not find file "z". Make sure you have downloaded the model before running the agent. Use `python -m livekit.agents download-files` to download the model.zJlivekit-plugins-turn-detector initialization failed. Could not find file "z".Nr   )huggingface_hubr#   r   LocalEntryNotFoundErrorOSErrorr   errorRuntimeError)r   r   r   r#   
local_paths   &&,  r   _download_from_hf_hubr*      s    /$RWRxR6R
  **G4 	#H: .S S	

 $$,:R1
 		s
    AAc                      ] tR t^/t]]R R l4       4       t]R R l4       tR R ltR R lt	R	 R
 lt
R R lt]R R l4       tRtR# )_EUORunnerBasec                   V ^8  d   QhRR/# )r   r   r   r   )r   s   "r   r    _EUORunnerBase.__annotate__2   s    ,,<,r!   c                	    R # Nr   clss   &r   
model_type_EUORunnerBase.model_type0   s    ),r!   c                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r    r.   5   s     1 1s 1r!   c                	8    \         V P                  4       ,          # r0   )r   r3   r1   s   &r   model_revision_EUORunnerBase.model_revision4   s    s~~/00r!   c                    V ^8  d   QhRRRR/# )r   textr   r   r   )r   s   "r   r    r.   8   s      C C r!   c                	    V'       g   R # \         P                  ! RVP                  4       4      pR P                  R V 4       4      p\        P
                  ! RRV4      P                  4       pV# ) NFKCc              3     "   T F;  p\         P                  ! V4      P                  R 4      '       d
   VR9  d   K7  Vx  K=  	  R# 5i)PN)'-)unicodedatacategory
startswith).0chs   & r   	<genexpr>1_EUORunnerBase._normalize_text.<locals>.<genexpr>=   s<      
((,77<<:AU Bs   /AA
Az\s+ )rC   	normalizelowerjoinresubstrip)selfr;   s   &&r   _normalize_text_EUORunnerBase._normalize_text8   s]    $$VTZZ\:ww 

 

 vvfc4(..0r!   c                    V ^8  d   QhRRRR/# )r   chat_ctxzlist[dict[str, Any]]r   r   r   )r   s   "r   r    r.   E   s      )= # r!   c                	x   . pR pV Fz  pVR,          '       g   K  V P                  VR,          4      pV'       d0   VR,          VR,          8X  d   VR;;,          RV 2,          uu&   Kc  WTR&   VP                  V4       TpK|  	  V P                  P                  VRRRR7      pVP	                  R4      pVR V pV# )NcontentrolerJ   F)add_generation_promptadd_special_tokenstokenizez
<|im_end|>)rR   append
_tokenizerapply_chat_templaterfind)	rQ   rU   new_chat_ctxlast_msgmsgrW   
convo_textixr;   s	   &&       r   _format_chat_ctx_EUORunnerBase._format_chat_ctxE   s    *.Cy>>**3y>:G HV,F;#7)}4#!(I##C(  __88%Z_ 9 


 l+#2r!   c                   V ^8  d   QhRR/# r   r   Noner   )r   s   "r   r    r.   _   s     6 6D 6r!   c           	     	~   \         P                  ! R 4      p ! R R\         P                  4      pV! 4       pVP                  ! V4        ^ RIp^ RIHp ^ RIHp VP                  ! V4       V P                  P                  4       p \        \        \        RVRR7      pVP                  4       p	\!        ^\#        \$        P&                  ! \(        P*                  ! 4       P-                  4       4      ^,          ^4      4      V	n        ^V	n        V	P3                  R	R
4       VP5                  VR.V	R7      V n        VP9                  \        VRRR7      V n        R#   TP                  ! T4       i ; i  TP<                  \>        3 d6    TP@                  ! R\         RT R24       \C        R\         RT R24      Rhi ; i)transformersc                  "    ] tR t^btR R ltRtR# )4_EUORunnerBase.initialize.<locals>._SuppressSpecificc                    V ^8  d   QhRRRR/# )r   recordzlogging.LogRecordr   boolr   )r   s   "r   r    A_EUORunnerBase.initialize.<locals>._SuppressSpecific.__annotate__c   s      %6 4 r!   c                	N    VP                  4       pVP                  R 4      '       * # )z<None of PyTorch, TensorFlow >= 2.0, or Flax have been found.)
getMessagerE   )rQ   ro   rb   s   && r   filter;_EUORunnerBase.initialize.<locals>._SuppressSpecific.filterc   s)    '')>>R  r!   r   N)__name__
__module____qualname____firstlineno__rt   __static_attributes__r   r!   r   _SuppressSpecificrm   b   s     r!   r{   Nr   AutoTokenizeronnxT)	subfolderrevisionlocal_files_onlyzsession.dynamic_block_base4CPUExecutionProvider)	providerssess_optionsleft)r   r   truncation_sidezCould not find model z with revision z. Make sure you have downloaded the model before running the agent. Use `python -m livekit.agents download-files` to download the models.zJlivekit-plugins-turn-detector initialization failed. Could not find model .)"logging	getLoggerFilter	addFilteronnxruntimer$   r   rk   r}   removeFilter	__class__r8   r*   r   r   SessionOptionsmaxminmathceilr   get_cpu_monitor	cpu_countintra_op_num_threadsinter_op_num_threadsadd_session_config_entryInferenceSession_sessionfrom_pretrainedr]   r%   r&   r'   r(   )
rQ   r   r{   filtortr   r}   r   local_path_onnxr   s
   &         r   
initialize_EUORunnerBase.initialize_   s   "">2	 	 !"	&%.2%>>002!	3 !!%O --/L033tyy!3!3!5!?!?!ABaGK1L- 12L-112NPST00,B+CR^ 1 DM ,;;!!% &	 < DO) %6 ..8 		LL'z
 KX X
 ((0z
!M 		s   
E CE0 E-0AF<c                    V ^8  d   QhRRRR/# )r   databytesr   zbytes | Noner   )r   s   "r   r    r.      s     + + +, +r!   c                	P   \         P                  ! V4      pVP                  R R4      pV'       g   \        R4      h\        P
                  ! 4       pV P                  V4      pV P                  VRR\        RR7      pV P                  P                  RRVR,          P                  R4      /4      pV^ ,          P                  4       R,          p\        P
                  ! 4       p	R	\        V4      R
\        W,
          ^4      RV/p
\         P                  ! V
4      P!                  4       # )rU   Nz0chat_ctx is required on the inference input dataFnpT)rZ   return_tensors
max_length
truncation	input_idsint64eou_probabilitydurationinput)jsonloadsget
ValueErrortimeperf_counterre   r]   MAX_HISTORY_TOKENSr   runastypeflattenfloatrounddumpsencode)rQ   r   	data_jsonrU   
start_timer;   inputsoutputsr   end_timeresults   &&         r   r   _EUORunnerBase.run   s   JJt$	==T2OPP&&(
$$X.$) ! 
 --##D;{8K8R8RSZ8[*\]!!*,,.r2$$& u_5h3Q7T"

 zz&!((**r!   c                   V ^8  d   QhRR/# rh   r   )r   s   "r   r    r.      s     Y Y Yr!   c                	    ^ RI Hp VP                  \        V P	                  4       R7       \        \        \        RV P	                  4       R7       \        \        RV P	                  4       R7       R# )r   r|   )r   r~   )r   r   languages.jsonN)rk   r}   r   r   r8   r*   r   )r2   r}   s   & r   _download_files_EUORunnerBase._download_files   sU    . 	%%h9K9K9M%Nmv@R@R@T	
 	h(83CUCUCWXr!   )r   r]   N)rv   rw   rx   ry   classmethodr   r3   r8   rR   re   r   r   r   rz   r   r!   r   r,   r,   /   sU    ,  ,1 146p+8 Y Yr!   r,   c                  :   a  ] tR t^tR V 3R lltR R ltRtV ;t# )	EOUPluginc                    V ^8  d   QhRRRR/# )r   runnerztype[_EUORunnerBase]r   ri   r   )r   s   "r   r    EOUPlugin.__annotate__   s     $ $3 $ $r!   c                	X   < \         SV `  \        \        \        \
        4       Wn        R # r0   )super__init__rv   r   __package__r   _runner_class)rQ   r   r   s   &&r   r   EOUPlugin.__init__   s    ;VD#r!   c                   V ^8  d   QhRR/# rh   r   )r   s   "r   r    r      s     - - -r!   c                	:    V P                   P                  4        R # r0   )r   r   rQ   s   &r   download_filesEOUPlugin.download_files   s    **,r!   )r   )rv   rw   rx   ry   r   r   rz   __classcell__)r   s   @r   r   r      s    $ $- -r!   r   c                      ] tR t^tRR R llt]R R l4       t]R R l4       t]R R	 l4       t	R
 R lt
R R ltR^/R R lltRtR# )EOUModelBaseNc          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r   r3   r   inference_executorzInferenceExecutor | Noneunlikely_thresholdfloat | Noneload_languagesrp   r   ri   r   )r   s   "r   r    EOUModelBase.__annotate__   s<     / / / 5/ )/ / 
/r!   c                	l   Wn         T;'       g    \        4       P                  V n        W0n        / V n        V'       db   \        \        R \        V P                   ,          RR7      p\        V4      ;_uu_ 4       p\        P                  ! V4      V n        RRR4       R# R#   + '       g   i     R# ; i)r   T)r   r   N)_model_typer   r   	_executor_unlikely_threshold
_languagesr*   r   r   openr   load)rQ   r3   r   r   r   config_fnamefs   &&&&&  r   r   EOUModelBase.__init__   s     &+SS/@/S/S#5 *,0 ()9)9:!%	L l##q"&))A, $#  $##s   :B""B3	c                   V ^8  d   QhRR/# r6   r   )r   s   "r   r    r      s        s  r!   c                	    V P                   # r0   )r   r   s   &r   modelEOUModelBase.model   s    r!   c                   V ^8  d   QhRR/# r6   r   )r   s   "r   r    r      s      # r!   c                	    R # )livekitr   r   s   &r   providerEOUModelBase.provider   s    r!   c                   V ^8  d   QhRR/# r6   r   )r   s   "r   r    r      s    ++3+r!   c                	    R # r0   r   r   s   &r   _inference_methodEOUModelBase._inference_method   s    (+r!   c                    V ^8  d   QhRRRR/# )r   languageLanguageCode | Noner   r   r   )r   s   "r   r    r      s     * *1D * *r!   c                	  "   Vf   R # V P                   P                  VP                  4      pVf&   V P                   P                  VP                  4      pV'       g   R # V P                  e   V P                  # VR,          # 5i)N	threshold)r   r   isor   r   )rQ   r   	lang_datas   && r   r   EOUModelBase.unlikely_threshold   su      OO''5	 ++H,=,=>I ##/+++[))s   AB%Bc                    V ^8  d   QhRRRR/# )r   r   r   r   rp   r   )r   s   "r   r    r      s     C C0C C Cr!   c                	D   "   V P                  V4      G R j  xL
 R J#  L5ir0   )r   )rQ   r   s   &&r   supports_languageEOUModelBase.supports_language   s!     ,,X66dBB6s     timeoutc               $    V ^8  d   QhRRRRRR/# )r   rU   zllm.ChatContextr  r   r   r   r   )r   s   "r   r    r     s(     . .!. 	.
 
.r!   c               	`  "   . pVP                  4        FK  pVP                  R
9  d   K  VP                  pV'       g   K,  VP                  RVP                  RV/4       KM  	  V\        ) R p\
        P                  ! RV/4      P                  4       p\        P                  ! V P                  P                  V P                  4       V4      VR7      G Rj  xL
 pVf   Q R4       h\
        P                  ! VP                  4       4      p\        P                   ! RVR7       VR	,          #  LT5i)userrX   rW   NrU   )r  z:end_of_utterance prediction should always returns a resultzeou prediction)extrar   )r
  	assistant)messagesrX   text_contentr\   MAX_HISTORY_TURNSr   r   r   asynciowait_forr   do_inferencer   r   decoder   debug)	rQ   rU   r  r  rb   r  	json_datar   result_jsons	   &&$      r   predict_end_of_turn EOUModelBase.predict_end_of_turn  s
     *,$$&Cxx44++L|!< ' ../0JJ
H56==?	''NN''(>(>(@)LV]
 
 !_#__!&*jj&A%[9,--
s   :D.BD.D,AD.)r   r   r   r   )enNNT)rv   rw   rx   ry   r   propertyr   r   r   r   r   r  r  rz   r   r!   r   r   r      s^    /0       + +*(C. !"	. .r!   r   )+
__future__r   r  r   r   r   rN   r   rC   abcr   r   typingr   r$   r   livekit.agentsr	   r
   r   livekit.agents.inference_runnerr   %livekit.agents.ipc.inference_executorr   livekit.agents.jobr   livekit.agents.utilsr   logr   modelsr   r   r   r   versionr   r   r  r*   r,   r   r   r   r!   r   <module>r&     s    "     	   #  " 4 4 < C . #  J J    $MY% MY`- -Z.3 Z.r!   