
    Vi%                     X   d dl Z d dlmZmZ d dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZ  e
e                                          j        j        j        Zej                            ed          Z ee            ej        d	          Z ej        d
          Z ej        d          Z ej        d          Zer ej        e          ndZ ej        dd          Z ej        dd          Z ej        dd          Zd Z ej        dd          Z ej        dd          Z  ej        d          Z! ej        dd          Z" ej        dd          Z# ej        dd          Z$ ej        dd           Z% ej        d!d"          Z& ej        d#d$          Z' ej        d%d&          Z( ej        d'd(          Z) ej        d)          Z* ej        d*          Z+ ej        d+ e, e
e          j        d,z                      Z- ej        d- e,e                    Z. ej        d.ej                            e.d/                    Z/ ej        d0ej                            e.d1                    Z0 ej        d2ej                            e.d3                    Z1 ej        d4ej                            e-d5                    Z2 ej        d6ej                            e-d7                    Z3 ej        d8ej                            e.d9                    Z4 ej        d:ej                            e-d;                    Z5 ej        d<ej                            e-d=                    Z6 ej        d>d?          Z7dEd@Z8 ee          Z9 e j:        e j;        dAB            e j<        e=          Z>e>?                    e j@                   eZAdC ZB eBdD          ZC eBd          ZD eBd          ZE eBd           ZF eBd"          ZG eBd(          ZH eBd&          ZIdS )F    N)
LineBotApiWebhookHandler)load_dotenv)AsyncOpenAI)Path)genaiz.env)dotenv_pathLINE_CLIENT_IDOPENAI_API_KEYOpenWeatherMap_API_KEYGOOGLE_API_KEY)api_keyGOOGLE_CLOUD_PROJECT VERTEX_LOCATIONzus-central1VERTEX_API_KEYc                  d    t           st          d          t          j        dt                     S )u>   Vertex AI 백엔드를 사용하는 google.genai Client 생성zVERTEX_API_KEY not configuredT)vertexair   )r   
ValueErrorr   Client     /app/app/core/config.pyget_vertex_clientr   %   s8     :8999<   r   DB_HOST	localhostDB_USER	GOALSkillDB_PASSWORDDB_NAMEINPUT_DB	A_DB_NAMEA_DB	B_DB_NAMEB_DB	C_DB_NAMEC_DB	D_DB_NAMED_DB	Q_DB_NAMEQ_DBTHEORY_DB_NAME	Theory_DBCHAT_LOG_DB_NAMEchat_log_DBZOOM_MEETING_IDZOOM_MEETING_PASSWORD	FRONT_DIRfrontBACK_DIR
IMG_Q_PATHimg_qIMG_EXP_PATHimg_explanationIMG_PATHimgPPT_PATHPPTSELFPR_PATHself_prSTUDYPLAN_FILES_PATHstudyplan_filesCURRICULUM_PDF_PATHcurriculum_PDFPROGRESS_PDF_PATHprogress_PDF
APP_PREFIXSGc                 <    t           st          d          t           S )u   
    google.genai의 새로운 API를 사용하는 함수
    반환값: genai.Client 객체 (모델은 클라이언트를 통해 접근)
    z Google API key is not configured)genai_clientr   )system_instructions    r   get_gemini_modelrJ   S   s!    
  =;<<<r   z)%(asctime)s - %(levelname)s - %(message)s)levelformatc                 .    t           t          t          | dS )N)userpasswordhostdatabase)r   r   r   )db_names    r   get_db_configrS   h   s     	  r   Goalskill_DB)N)Jlogginglinebotr   r   osdotenvr   openair   pathlibr   googler   __file__resolveparentBASE_DIRpathjoinenv_pathgetenvr
   openai_api_keyopenweathermap_api_keygoogle_api_keyr   rH   VERTEX_PROJECTr   r   r   r   r   r   r    r"   r$   r&   r(   r*   r,   r.   r0   r1   strr2   r4   r5   r7   r9   r;   r=   r?   rA   rC   rE   rJ   clientbasicConfigINFO	getLogger__name__loggersetLevelDEBUG	client_idrS   GOALSKILL_DB_CONFIGA_DB_CONFIGB_DB_CONFIGC_DB_CONFIGD_DB_CONFIGCHAT_LOG_DB_CONFIGTHEORY_DB_CONFIGr   r   r   <module>ry      s    . . . . . . . . 				                        
 4>>!!##*18 7<<&))  ! ! ! !+,,+,,"#;<<  +,,7EO|u|N33334 1266")-}==+R00   ")I{
+
+
")I{
+
+bi&&
")Iz
*
*BIk6**	BIk6**	BIk6**	BIk6**	BIk6**	+[9929/??  ")-..!	"9::  BIk33ttH~~'<w'F#G#GHH	29ZX//RY|RW\\(G%D%DEE
ryh@Q)R)RSS29Zh!>!>??29Zi!?!?@@birw||Iy'I'IJJ ry!7hPa9b9bcc bi 5rw||IO_7`7`aa BI127<<	>3Z3Z[[  RY|T**
    
^	,	,	,  ',FH H H H		8	$	$    	   $mN33 mF##mF##mF##mF##"]=11  =--   r   