U
    Åxêhx  ã                   @   sN   d Z ddlZddlmZ ddlmZ eƒ  G dd„ dƒZejZejZej	Z	dS )u<   
ÐšÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð´Ð»Ñ AI-ÐšÐÐ›ÐžÐ Ð˜Ð¯ Ð±Ð¾Ñ‚Ð°
é    N)ÚOptional)Úload_dotenvc                   @   sX  e Zd ZU dZe dd¡Zeed< e dd¡Z	eed< e dd¡Z
eed< e dd	¡Zeed< e d
d¡Zeed
< e dd¡Zeed< ee dd¡ƒZeed< ee dd¡ƒZeed< e dd¡Zeed< ee dd¡ƒZeed< ee dd¡ƒZeed< ee dd¡ƒZeed< ee dd¡ƒZeed< e dd¡Zeed< ee dd¡ƒZeed< e dd ¡Zeed< e d!d"¡Zeed!< e d#d$¡ ¡ d$kZeed#< ee d%d&¡ƒZeed%< ee d'd(¡ƒZeed'< ee d)d*¡ƒZ eed)< ee d+d,¡ƒZ!eed+< e"ed-œd.d/„ƒZ#e"e$d-œd0d1„ƒZ%e"e$d-œd2d3„ƒZ&e"e$d-œd4d5„ƒZ'e"e$d-œd6d7„ƒZ(d8S )9ÚConfigu8   ÐšÐ»Ð°ÑÑ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¸ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸ÑZTELEGRAM_BOT_TOKENÚ Ú	BOT_TOKENÚOPENAI_API_KEYÚDATABASE_URLzsqlite:///ai_calories.dbÚ	LOG_LEVELÚINFOÚLOG_FILEzai_calories_bot.logÚOPENAI_MODELzgpt-3.5-turboÚOPENAI_MAX_TOKENSZ1000ÚOPENAI_TEMPERATUREz0.3ÚWHISPER_MODELz	whisper-1ÚDB_POOL_SIZEÚ10ÚDB_MAX_OVERFLOWZ20ÚBOT_TIMEOUTÚBOT_LONG_POLLING_TIMEOUTÚ5ÚPROXY_SERVERz45.128.56.184Ú
PROXY_PORTZ64826ÚPROXY_LOGINZttNkVLRSÚ
PROXY_PASSZ63cYXNdrÚ	USE_PROXYÚtrueÚMAX_MESSAGE_LENGTHZ4000ÚVOICE_MAX_DURATIONZ60Ú
STATS_DAYSZ30ÚHISTORY_LIMITZ50)Úreturnc                 C   sP   g }| j s| d¡ | js$| d¡ |rLtdƒ |D ]}td|› ƒ q4dS dS )uD   ÐŸÑ€Ð¾Ð²ÐµÑ€ÑÐµÑ‚ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð¾ÑÑ‚ÑŒ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¸u,   TELEGRAM_BOT_TOKEN Ð½Ðµ ÑƒÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½u(   OPENAI_API_KEY Ð½Ðµ ÑƒÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½u*   âŒ ÐžÑˆÐ¸Ð±ÐºÐ¸ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ð¸:z  - FT)r   Úappendr   Úprint)ÚclsÚerrorsÚerror© r&   úG/var/www/u0236315/data/www/consultsolution.ru/ai-calories-app/config.pyÚvalidate=   s    

zConfig.validatec                 C   s   | j | j| j| jdkdœS )uC   Ð’Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸ÑŽ Ð±Ð°Ð·Ñ‹ Ð´Ð°Ð½Ð½Ñ‹Ñ…ÚDEBUG)ÚurlÚ	pool_sizeÚmax_overflowÚecho)r   r   r   r	   ©r#   r&   r&   r'   Úget_database_configP   s
    üzConfig.get_database_configc                 C   s   | j | j| j| j| jdœS )u4   Ð’Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸ÑŽ OpenAI)Zapi_keyÚmodelZ
max_tokensZtemperatureZwhisper_model)r   r   r   r   r   r.   r&   r&   r'   Úget_openai_configZ   s    ûzConfig.get_openai_configc                 C   s   | j | j| jdœS )u6   Ð’Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸ÑŽ Ð±Ð¾Ñ‚Ð°)ÚtokenÚtimeoutZlong_polling_timeout)r   r   r   r.   r&   r&   r'   Úget_bot_confige   s    ýzConfig.get_bot_configc                 C   s   | j | j| j| j| jdœS )u:   Ð’Ð¾Ð·Ð²Ñ€Ð°Ñ‰Ð°ÐµÑ‚ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸ÑŽ Ð¿Ñ€Ð¾ÐºÑÐ¸)ÚserverÚportÚloginÚpasswordÚenabled)r   r   r   r   r   r.   r&   r&   r'   Úget_proxy_confign   s    ûzConfig.get_proxy_configN))Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚosÚgetenvr   ÚstrÚ__annotations__r   r   r	   r   r   Úintr   Úfloatr   r   r   r   r   r   r   r   r   r   Úlowerr   Úboolr   r   r   r   Úclassmethodr(   Údictr/   r1   r4   r:   r&   r&   r&   r'   r      sB   
	
r   )
r>   r?   Útypingr   Údotenvr   r   r   r   r   r&   r&   r&   r'   Ú<module>   s   l