
    g                         d dl 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 ddeded	efd
Zdeded	efdZded	efdZy)    N)datetime	timedelta)settings)factCode)multi_fact_prompt)
ChatOpenAIstandaloneQuestionfromDatetoDatec                   K   d }d}t        t        j                  d      }|j                  t        d       t               |z  }t        dd      5 }	|	j                         }d d d        |j                  |g| d|d	d
       d {   }
|
r 	 t        |
j                  ||       d {   }| ||d|dS # 1 sw Y   UxY w7 :7 # t        $ r}t        |       Y d }~1d }~ww xY ww)N zgpt-4o-2024-08-06)api_keymodelT)strictz6/var/www/html/chat-with-data/test/hotel_2023-06-08.txtr)factquestionz
fact-chain)	callbacksrun_name)inputconfigmultiFactReportTool)r	   r
   datetypedata)r   r   
OPENAI_KEYwith_structured_outputr   r   openreadainvokerun_codecontent	Exceptionprint)r	   r
   r   r   kwargsr   factDatallm	factChainfactFileresultes               A/var/www/html/chat-with-data/app/rag/tools/multiFactReportTool.pymulti_fact_reportr-      s
    DH X007J
KCxt4!#c)I 
F	MQY==? 
N $$XJL^+_t}  JV  hW$  X  XF	!&..6BBD #5SYcx  CG  H  H 
N	M X
 C 	!H	sf   AC(B7#%C(C	C(C *C+C /C(7C <C(C 	C%C C( C%%C(codec                    K   i }t        ||      }|sy ||d<   t        | t               |       |j                  dd       S w)Nr&   	finalData)load_and_merge_jsonexecglobalsget)r.   r
   r   local_scoper&   s        r,   r!   r!   %   sJ     K"8F3H&K
 	gi$ ??;t,,s   >A c                    t        j                  | d      }t        j                  |d      }g }|}||k  r|j                  d      }d| d}t        j                  j                  |      rL	 t        |d      5 }|j                         }	t        j                  |	      }
|j                  |
       d d d        |t        d      z  }||k  r|S # 1 sw Y    xY w# t        $ r}t        d| d|        Y d }~Bd }~ww xY w)	Nz%Y-%m-%dz(/var/www/html/chat-with-data/test/hotel_z.txtr   zError reading z:    )days)r   strptimestrftimeospathexistsr   r   jsonloadsappendr#   r$   r   )r
   r   	from_dateto_datemerged_datacurrent_datedate_str	file_pathr)   r&   	json_datar+   s               r,   r1   r1   5   s    !!(J7I
3G K L
'
!((4 ?xjM	 77>>)$9)S)X'}}H $

8 4I&&y1 * 		q))' '
!*  *)  9ykA37889s0   -C 97C0C CC 	C?$C::C?)N)r;   r>   r   r   app.config.applicationr   app.schemas.chat_schemar   app.utils.promptsr   !langchain_openai.chat_models.baser   strr-   r!   r1        r,   <module>rO      se    	  ( + , / 8Hs HS H H2- - -S -  S rN   