
    rh              	           d dl Z d dlZd dlmZ d dlZd dlmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZmZmZ d dlmZ  e
         ej&                  d	      rN e ej&                  d
       ej(                   ej&                  d	       ej*                  d                  Zn e ej&                  d
            Z e ej&                  d            ZdedefdZdedefdZdedefdZdefdZdefdZdefdZy)    N)datetime)
ChatAction	ParseMode)AsyncOpenAI)load_dotenv)sessionmaker)add_historyget_historyget_user)translationsPROXYOPENAI_API_KEYz0.0.0.0)local_address)proxy	transport)api_keyhttp_client)r   WRITE_SIMBOLquestionsession_makerc           
      d  K   t        |d| |       d {    t        ||       d {   }dt        d   d   j                  |j                  |j
                  |j                  |j                  |j                  |j                  |j                        dgt        ||       d {   z   }|j                  t        j                  t        j                               k  r|j                   dkD  rt"        j$                  j&                  j)                  d|d	       d {   }t        |d|j*                  d   j,                  j.                  |       d {    d
|j                    d|j*                  d   j,                  j.                  z   S yt"        j$                  j&                  j)                  d|d	       d {   }t        |d|j*                  d   j,                  j.                  |       d {    |j*                  d   j,                  j.                  S 7 
7 7 ~7 7 7 l7 7w)Nuser	developerruGPT_INSTRUCTIONrolecontentr   gpt-4offffff?modelmessagestemperature&   _trial версия (осталось     дней)_
A   Срок действия вашей лицензии истёк!)r	   r   r   formatusernamegendercitymassage_techniquewhere_practicingusing_socialwere_clientsr
   premiumr   datenowtrialclientchatcompletionscreatechoicesmessager   )r   chat_idr   r   history
completions         /app/bot/handlers/chat_GPT.pygpt4r>      s    
gvx
???'=11D$d1CDU1V1]1]		2   !-88	9G ||hmmHLLN33::>%{{66== 	  >   J g{J4F4Fq4I4Q4Q4Y4Y[hiii;DJJ<}UXbXjXjklXmXuXuX}X}}}W!;;2299	 : 
 

 ';
0B0B10E0M0M0U0UWdeee!!!$,,444A @1 9 j

 	fs|   H0HH0H!A=H0&H$'A8H0H' 6H0H*A(H0?H, 6H06H.7(H0!H0$H0'H0*H0,H0.H0c                   K   t        || j                  j                  |       d {   }t        |      t        z  }t        |d      }| j                  j                  | j                  j                  t        j                         d {    t        j                  |       d {    | j                  |t        j                         d {    y 7 7 M7 27 wN
   )
parse_mode)r>   r5   idlentyping_speedminbotsend_chat_actionr   TYPINGasynciosleepanswerr   MARKDOWN)r9   r   r   response_texttyping_durations        r=   write_response_gptrP   C   s      M -(<7O/2.O
++
&
&w||
8I8I
JJJ
--
(((
..%%     K(sF   %CCA#CCC(C)(CCCCCClangtextc                    K   dj                  | |      }t        j                  j                  j	                  dt        |      dgd       d {   }|j                  d   j                  j                  S 7 'w)Nu"   Переведи с ru на {}: {}r   r   r   )r#   r"   r   )	r(   r4   r5   r6   r7   strr8   r9   r   )rQ   rR   r   responses       r=   translate_gptrV   V   s{     3::4FH[[,,33 x=
  4  H A&&...s   AA:A8(A:c           	        K   t         d   d   j                  |j                  |j                  |j                  |j
                  |j                  |j                  |j                        }|j                  t        j                  t        j                               k  r||j                  dkD  rlt        j                  j                   j#                  dd|dgd       d {   }d	|j                   d
|j$                  d   j&                  j(                  z   S yt        j                  j                   j#                  dd|dgd       d {   }|j$                  d   j&                  j(                  S 7 7 )w)Nr   FIRST_MESSAGE_TO_GPTr   r   r   r   r    r!   r%   r&   r'   )r   r(   r)   r*   r+   r,   r-   r.   r/   r0   r   r1   r2   r3   r4   r5   r6   r7   r8   r9   r   )r9   r   r   promptr<   s        r=   gpt4_strategyrZ   c   sL    $ 67>>		F ||hmmHLLN33::>%{{66==#)f=>  >   J
 <DJJ<}UXbXjXjklXmXuXuX}X}}}W!;;2299%&9: : 
 


 !!!$,,444
s%   CE9 E5!A,E9E7(E97E9c                   K   t        | ||       d {   }t        |      t        z  }t        |d      }| j                  j                  | j                  j                  t        j                         d {    t        j                  |       d {    | j                  |t        j                         d {    y 7 7 M7 27 wr@   )rZ   rD   rE   rF   rG   rH   r5   rC   r   rI   rJ   rK   rL   r   rM   )r9   r   r   rN   rO   s        r=   write_strategy_responser\      s     '}EEM-(<7O/2.O
++
&
&w||
8I8I
JJJ
--
(((
..%%     F
 K(sF   CCA#C7C8CC(C=C	>CCC	Cc                 H  K   d| j                    d| j                   d| j                   d| j                   d| j                   d| j
                   d| j                   d}t        j                  j                  j                  d	d
|dgd       d {   }|j                  d   j                  j                  }|j                         j                  d      D cg c]2  }|j                         s|j                  d      j                         4 }}|d d S 7 c c}w w)Nu  Ты профессиональный бизнес-консультант для массажистов. Составь персональный 30-дневный план заданий для развития массажного бизнеса. Каждое задание должно быть коротким и чётким, по шагам. Вот данные анкеты:
Имя: u	   
Пол: u   
Город: u   
Формат приёма: u   
Опыт работы: u   
Техника: u#   
Навыки в соцсетях: u   
Верни список из 30 пунктов (по одному на каждый день) без лишнего текста.r   r   r   r    r!   r   
u   -•    )r)   r*   r+   r-   r/   r,   r.   r4   r5   r6   r7   r8   r9   r   stripsplit)r   r   rY   r<   rR   lineplans          r=   generate_30_day_planrd      s9    	 ==/ ";;-  yyk "&&*&;&;%< =""&"3"3!4 5112 3--1->->,? @L	L  {{..55!f56 6  J
 a ((00D48JJL4F4Ft4L]4LDPTPZPZP\DJJw%%'4LD]9 ^s+   BD"DAD"D3!DD"D") rJ   osr   httpxaiogram.enumsr   r   openair   dotenvr   sqlalchemy.ormr   bot.db.requestsr	   r
   r   bot.translationsr   getenvAsyncClientHTTPTransportr4   intrE   rT   r>   rP   rV   rZ   r\   rd        r=   <module>rs      s    	   /   ' > > ) 299W+;!<%6U%6%6#,299W#5':u':':'S&F +;!<=F 9299^,-!5 !5l !5J L &/c / /5l 5: L rr   