o
    rh                     @   s6  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d	rZeed
ejed	ejddddZneed
dZeedZdedefddZdedefddZdedefddZdefddZdefddZdefdd ZdS )!    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              
      s&  t |d| |I d H  t||I d H }dtd d |j|j|j|j|j|j	|j
dgt||I d H  }|jtt k rp|jdkrntjjjd|dd	I d H }t |d|jd jj|I d H  d
|j d|jd jj S dS tjjjd|dd	I d H }t |d|jd jj|I d H  |jd jjS )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
completion r;   5/var/www/html/tgBotAssistant/bot/handlers/chat_GPT.pygpt4   s>   	

r=   c                    sr   t || jj|I d H }t|t }t|d}| j| jjtj	I d H  t
|I d H  | j|tjdI d H  d S N
   )
parse_mode)r=   r3   idlentyping_speedminbotsend_chat_actionr   TYPINGasynciosleepanswerr   MARKDOWN)r7   r   r   response_texttyping_durationr;   r;   r<   write_response_gptC   s   

rN   langtextc                    s@   d | |}tjjjdt|dgddI d H }|jd jjS )Nu"   Переведи с ru на {}: {}r   r   r   )r!   r    r   )	r&   r2   r3   r4   r5   strr6   r7   r   )rO   rP   r   responser;   r;   r<   translate_gptV   s   	rS   c              	      s   t d d |j|j|j|j|j|j|j}|j	t
t
 k rG|jdkrEtjjjdd|dgddI d H }d	|j d
|jd jj S dS tjjjdd|dgddI d H }|jd jjS )Nr   FIRST_MESSAGE_TO_GPTr   r   r   r   r   r   r#   r$   r%   )r   r&   r'   r(   r)   r*   r+   r,   r-   r.   r   r/   r0   r1   r2   r3   r4   r5   r6   r7   r   )r7   r   r   promptr:   r;   r;   r<   gpt4_strategyc   s2   



rV   c                    sn   t | ||I d H }t|t }t|d}| j| jjtj	I d H  t
|I d H  | j|tjdI d H  d S r>   )rV   rB   rC   rD   rE   rF   r3   rA   r   rG   rH   rI   rJ   r   rK   )r7   r   r   rL   rM   r;   r;   r<   write_strategy_response   s   
rW   c                    s   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I d H }|jd jj}dd | dD }|d d S )Nu  Ты профессиональный бизнес-консультант для массажистов. Составь персональный 30-дневный план заданий для развития массажного бизнеса. Каждое задание должно быть коротким и чётким, по шагам. Вот данные анкеты:
Имя: u	   
Пол: u   
Город: u   
Формат приёма: u   
Опыт работы: u   
Техника: u#   
Навыки в соцсетях: u   
Верни список из 30 пунктов (по одному на каждый день) без лишнего текста.r   r   r   r   r   r   c                 S   s"   g | ]}|  r| d   qS )u   -• )strip).0liner;   r;   r<   
<listcomp>   s   " z(generate_30_day_plan.<locals>.<listcomp>
   )r'   r(   r)   r+   r-   r*   r,   r2   r3   r4   r5   r6   r7   r   rX   split)r   r   rU   r:   rP   planr;   r;   r<   generate_30_day_plan   s2   	

r`   ) rH   osr   httpxaiogram.enumsr   r   openair   dotenvr   sqlalchemy.ormr   bot.db.requestsr   r	   r
   bot.translationsr   getenvAsyncClientHTTPTransportr2   intrC   rQ   r=   rN   rS   rV   rW   r`   r;   r;   r;   r<   <module>   s4    


%