
    љi#                     r    S SK r S SKrS SKrS SKrS SKrSSKJr  \R                  " \5      r	 " S S\5      r
g)    N   )TTSPreprocessorc                   z   \ rS rSrSSSSSSSSS	S
S.S	SS.S.SS/S.S.0S/S.S.S.rSSSSSSSSSSSSSSS.S\S\S \S!\S"\S#\S$\S%\S&\S'\S(\\\4   S)\S*\S+\	S,\4S- jjr
S. rS/\S0\4S1 jr\S2 5       r\R                  S3\4S4 j5       rS<S5\S6\S7\S0\4S8 jjrS<S5\S6\S7\S0\4S9 jjrS<S5\S6\S7\S0\4S: jjrS;rg)=AlphabetToKanaPreprocessor   functionconvert_alphabet_to_kanaz<Output the result of converting alphabet to katakana readingobjectconversionsarrayz4List of pairs of words to convert and their readingsstringz,Original alphabet notation before conversion)typedescriptionzKatakana reading)originalkanar   r   )r   
propertiesrequired)r   r   items)namer   
parametersr   r   zgpt-4.1-miniN   u
   .'-'−–Td      g      $@F)modelbase_urlreasoning_effort
extra_bodysystem_promptsystem_prompt_with_cachealphabet_lengthspecial_charsuse_kana_mapkana_mapmax_connectionsmax_keepalive_connectionstimeoutdebugopenai_api_keyr   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   c          	         Xl         X l        U=(       d    SU l        X@l        XPl        U=(       d    SU l        U=(       d    SU l        Xl        Xl        U R                  5         [        R                  " S[        R                  5      U l        U(       a  UR                  5       O0 U l        Xl        ["        R$                  " S["        R&                  " U5      ["        R(                  " UUS9S9U l        Xl        g )Nzhttps://api.openai.com/v1u  与えられた文字列に含まれる外国語（アルファベット、中国語、ハングルなど）をカタカナ読みに変換してください。変換後の文字列で置換した文章全体を<converted>~</converted>に出力してください。u   与えられたアルファベット文字列をカタカナ読みに変換してください。convert_alphabet_to_kana関数で出力すること。originalにはアポストロフィーやピリオド等の記号も省略せずに出力すること。z<converted>(.*?)</converted>F)r%   r&   )follow_redirectsr'   limits)r)   r   r   r   r   r   r    _alphabet_lengthr"   _build_alphabet_patternrecompileDOTALLconverted_patterncopyr$   r#   httpxAsyncClientTimeoutLimitshttp_clientr(   )selfr)   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   s                   e/home/james-whalen/.local/lib/python3.13/site-packages/aiavatar/sts/tts/preprocessor/alphabet2kana.py__init__#AlphabetToKanaPreprocessor.__init__,   s    & -
 ?$? 0$*  y  /y(@  )E  EE% /*$$&!#,KRYY!W;C( ,,"MM'*<< /*C
 
    c                     [         R                  " U R                  5      n[         R                  " SU S35      U l        g )Nz[A-Za-z]+(?:[z][A-Za-z]+)*)r/   escaper"   r0   alphabet_pattern)r9   escaped_charss     r:   r.   2AlphabetToKanaPreprocessor._build_alphabet_patternV   s0    		$"4"45 "

mM?,+W Xr=   matchreturnc                 f    U R                    H
  nX!;   d  M
    g   [        U5      U R                  :  $ )NT)r"   lenr-   )r9   rC   cs      r:   _should_process*AlphabetToKanaPreprocessor._should_processZ   s1    ##Az $ 5zT2222r=   c                     U R                   $ Nr-   )r9   s    r:   r!   *AlphabetToKanaPreprocessor.alphabet_length`   s    $$$r=   valuec                     Xl         g rK   rL   )r9   rN   s     r:   r!   rM   d   s     %r=   text
style_infolanguagec                 $  #    U(       aA  UR                  S5      (       d+  U R                  (       a  [        R                  SU 35        U$ U R                  (       a  U R                  XUS9I S h  vN $ U R                  XUS9I S h  vN $  N N7f)Njaz+Skip AlphabetToKana for non-Japanese text: )rP   rQ   rR   )
startswithr(   loggerinfor#   process_with_kana_mapprocess_direct)r9   rP   rQ   rR   s       r:   process"AlphabetToKanaPreprocessor.processh   s~     H//55zzI(TUK33_g3hhh,,$X`,aaa ias$   A-B/B0BBBBc           
        #    U R                   R                  U5      (       Ga{  U R                  SU R                  S.SUS./S.nU R                  (       a  U R                  US'   U R
                  (       a  U R
                  US'   SSU R                   30n [        R                  " 5       nU R                  R                  U R                   S	3UUS
S9I S h  vN nUR                  5         UR                  5       n[        R                  " 5       U-
  n	US   S   S   S   n
U R                  (       a6  [        R                  U R                   R"                   SU SU
 SU	S S35        U R$                  R                  U
5      nU(       a  UR'                  S5      $ U$ U$  N! [(         a&  n[        R+                  SU SU 3SS9  Us S nA$ S nAff = f7f)Nsystemrolecontentuser)r   messagesr   r   AuthorizationBearer /chat/completions      @jsonheadersr'   choicesr   messager`    [LLM]:  -> z (.3fsec)r   zError at process_direct (text=): Texc_info)r@   searchr   r   r   r   r)   timer8   postr   raise_for_statusrh   r(   rV   rW   	__class____name__r2   group	Exceptionerror)r9   rP   rQ   rR   datari   
start_timeresp	resp_jsonelapsed	convertedmexs                r:   rY   )AlphabetToKanaPreprocessor.process_directs   s      ''--%$2D2DE#$7D $$+/+@+@'(%)__\"  74+>+>*?!@G!YY[
!--22}}o%67#	 3   %%' IIK	))+
2%i03I>yI	::KK4>>#:#:";8D6i[XZ[bcfZggk lm**11)<%&qwwqz0D0 K-"  =dV3rdKVZ[sV   BGAF# F!CF# GF# G!F# #
G-GG	GGGc                   #    U R                   R                  5        H  u  pE[        R                  " [        R                  " U5      XQ[        R
                  S9nXa:w  d  MD  UnU R                  (       d  MY  [        R                  U R                  R                   SU SU 35        M     U R                    Vs1 s H  owR                  5       iM     nnU R                  R                  U5       V	s/ s H3  n	U R                  U	5      (       d  M  U	R                  5       U;  d  M1  U	PM5     n
n	U
(       d  U$ U R                  SU R                   S.SSR#                  U
5      S./U R$                  /SS	S
0S.S.nU R&                  (       a  U R&                  US'   U R(                  (       a  U R(                  US'   SU R*                  ;   a  SU R,                  0nOSSU R,                   30n [.        R.                  " 5       nU R0                  R3                  U R*                   S3UUSS9I S h  vN nUR5                  5         UR7                  5       n[.        R.                  " 5       U-
  nUS   S   S   R9                  S/ 5      nU(       a  [6        R:                  " US   S   S   5      nUR9                  S/ 5      nU H  nUR9                  SS5      nUR9                  SS5      nU(       d  M0  U(       d  M9  XPR                   U'   [        R                  " [        R                  " U5      XQ[        R
                  S9nU R                  (       d  M  [        R                  U R                  R                   SU SU 35        M     U R                  (       a0  [        R                  U R                  R                   S US! S"35        U$ s  snf s  sn	f  GN! [<         a&  n[        R?                  S#U S$U 3S%S&9  Us S nA$ S nAff = f7f)'N)flagsz [KanaMap]: rm   r]   r^   ra   
r   r   r	   r   )r   rb   toolstool_choicer   r   azurezapi-keyrc   rd   re   rf   rg   rj   r   rk   
tool_calls	argumentsr   r    r   rl   z [LLM] completed (rn   ro   z"Error at process_with_cache (text=rp   Trq   ) r$   r   r/   subr?   
IGNORECASEr(   rV   rW   rw   rx   lowerr@   findallrH   r   r    joinCONVERT_TOOLr   r   r   r)   rt   r8   ru   rv   rh   getloadsrz   r{   )r9   rP   rQ   rR   r   r   new_textkkana_map_lowerr   uncachedr|   ri   r}   r~   r   r   r   r   r   convr   s                         r:   rX   0AlphabetToKanaPreprocessor.process_with_kana_map   s|    "mm113NHvvbii14R]]SH:::KK4>>#:#:";<zQUVZU[ \] 4 .2]];]'')];,,44T:
:!##A& +,779N+J : 	 
 K ZZ!d.K.KLDIIh,?@ ''($.VE_<`a
   '+'<'<D#$??!%Ddmm# $"5"56G ''$2E2E1F(GHG!	J))..==/!23	 /  D !!#		IiikJ.G"9-a0;??bQJ JJz!}Z'@'MN	'mmM2>'D#xx
B7H88FB/DxDD26h/!vvbii&94R]][:::"KK4>>+B+B*C8H:UYZ^Y_(`a ( zzt~~6677I'RUVZ[\Ks <
::  	LL=dV3rdKVZL[K	s   AP!P6AP9OP1OO%O+B=P)AO *O+B=O ,O 5AO A7O PO 
PO>8P9P>PP)r-   r@   r   r2   r(   r   r8   r$   r   r)   r   r"   r   r    r#   )NN)rx   
__module____qualname____firstlineno__r   strdictintboolfloatr;   r.   rH   propertyr!   setterrZ   rY   rX   __static_attributes__ r=   r:   r   r      s   .Y ! '']$, -53a-"
 -53E)"	+ *4V(<"$( +O-
LH $ $!(, )!#'")+#( ( 	(
 ( ( ( ( #&( ( ( ( sCx.( ( $'(  !(" #(TY3S 3T 3 % % &S & &	b# 	b4 	b# 	bY\ 	b* *$ *QT *`c *XE E EX[ Egj E Er=   r   )rh   loggingr/   rt   r4   r   r   	getLoggerrx   rV   r   r   r=   r:   <module>r      s5      	   			8	$Y Yr=   