
    dh                     d    S SK r S SKrS SKJr  S SKJr  S SKJr  S\S\	S\	4S jr
 " S	 S
\5      rg)    N)List)Document)
BaseLoadermessagetitlereturnc                     U (       d  gU S   (       a  U S   S   OSnU S   S   S   n[         R                   R                  U S   5      R                  S	5      nU S
U SU SU S3$ )z
Combine message information in a readable format ready to be used.
Args:
    message: Message to be concatenated
    title: Title of the conversation

Returns:
    Concatenated message
 authorroleunknowncontentpartsr   create_timez%Y-%m-%d %H:%M:%Sz - z on z: z

)datetimefromtimestampstrftime)r   r   sendertextdates        d/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/document_loaders/chatgpt.pyconcatenate_rowsr   
   s     *1(*;WXv&F9g&q)D**7=+ABKKD WCxtD6D666    c                   B    \ rS rSrSrS
S\S\4S jjrS\\	   4S jr
Srg	)ChatGPTLoader   z0Load conversations from exported `ChatGPT` data.log_filenum_logsc                     Xl         X l        g)zInitialize a class object.

Args:
    log_file: Path to the log file
    num_logs: Number of logs to load. If 0, load all logs.
Nr   r   )selfr   r   s      r   __init__ChatGPTLoader.__init__"   s     ! r   r   c                 6   [        U R                  SS9 nU R                  (       a#  [        R                  " U5      S U R                   O[        R                  " U5      nS S S 5        / nW H  nUS   nUS   nSR                  [        U5       VVs/ sH/  u  pxUS:X  a  Xh   S   S   S	   S
:X  a  M  [        Xh   S   U5      PM1     snn5      n	S[        U R                  5      0n
UR                  [        XS95        M     U$ ! , (       d  f       N= fs  snnf )Nutf8)encodingr   mappingr
   r   r   r   r   systemsource)page_contentmetadata)openr   r   jsonloadjoin	enumerater   strappendr   )r!   fdata	documentsdr   messagesidxkeyr   r+   s              r   r.   ChatGPTLoader.load,   s   $--&1Q48MM499Q<$--0tyyQR|D 2 	AgJE|H77 %.h$7$7q$M)4X>vF(R	 F$X]9%=uE$7	D !#dmm"45HX4KL   ) 21s   ADD2D
Dr    N))__name__
__module____qualname____firstlineno____doc__r1   intr"   r   r   r.   __static_attributes__ r   r   r   r      s(    :! ! !d8n r   r   )r   r-   typingr   langchain_core.documentsr   )langchain_community.document_loaders.baser   dictr1   r   r   rC   r   r   <module>rH      s:       - @7d 73 73 7*"J "r   