§
    æ˜ºhÐ  ã                   óŠ   — 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edefd„Zd	ed
edefd„Z G d„ de
¦  «        ZdS )é    N)ÚAnyÚIterator)ÚChatSession)ÚHumanMessage)ÚBaseChatLoaderÚmsgÚreturnc                 ó¤  — d }| d         d         D ]}|d         }|dk    r|d         }Œ|€t           ‚| d         d         D ]‰}|d         dk    r{|d	         d
         }t          j        |¦  «                             d¦  «        }t	          j        d¦  «        }t	          j        ||¦  «        d         }t          |d|i¬¦  «        }|c S ŒŠt           ‚)NÚpayloadÚheadersÚnameÚFromÚvalueÚpartsÚmimeTypez
text/plainÚbodyÚdatazutf-8z\r\nOn .+(\r\n)*wrote:\r\nr   Úsender)ÚcontentÚadditional_kwargs)Ú
ValueErrorÚbase64Úurlsafe_b64decodeÚdecodeÚreÚcompileÚsplitr   )	r   Ú
from_emailÚvaluesr   Úpartr   ÚpatternÚnewest_responseÚmessages	            ún/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/langchain_community/chat_loaders/gmail.pyÚ_extract_email_contentr%      sù   € Ø€JØ�i”. Ô+ð )ð )ˆØ�fŒ~ˆØ�6Š>ˆ>Ø œˆJøØÐÝÐØ�I”˜wÔ'ð ð ˆØ�
Ô˜|Ò+Ð+Ø˜”< Ô'ˆDÝÔ+¨DÑ1Ô1×8Ò8¸ÑAÔAˆDõ ”jÐ!>Ñ?Ô?ˆGå œh w°Ñ5Ô5°aÔ8ˆOÝ"Ø'¸HÀjÐ;Qðñ ô ˆGð ˆNˆNˆNð ,õ Ðó    Úservicer#   c                 ó¨  — |                       ¦   «                              ¦   «                              d|d         ¬¦  «                             ¦   «         }t	          |¦  «        }d }|d         d         }|D ]}|d         }|dk    r|d         }Œ|€t
          ‚|d	         }|                       ¦   «                              ¦   «                              d|¬¦  «                             ¦   «         }	|	d
         }
d }|
D ]1}|d         d         }|D ]}|d         dk    r|d         }||k    r|}ŒŒ2|€t
          ‚t	          |¦  «        }t          ||g¬¦  «        S )NÚmeÚid)ÚuserIdr*   r   r   r   zIn-Reply-Tor   ÚthreadIdÚmessagesz
Message-ID)r-   )Úusersr-   ÚgetÚexecuter%   r   Úthreadsr   )r'   r#   r   Úmessage_contentÚin_reply_toÚ
email_datar   r   Ú	thread_idÚthreadr-   Úresponse_emailÚ
message_idÚstarter_contents                 r$   Ú_get_message_datar:   #   ss  € Ø
�-Š-‰/Œ/×
"Ò
"Ñ
$Ô
$×
(Ò
(°¸À¼Ð
(Ñ
GÔ
G×
OÒ
OÑ
QÔ
Q€CÝ,¨SÑ1Ô1€OØ€KØ�Y” 	Ô*€JØð *ð *ˆØ�fŒ~ˆØ�=Ò Ð Ø  œ/ˆKøØÐÝÐà�J”€Ià�]Š]‰_Œ_×$Ò$Ñ&Ô&×*Ò*°$¸9Ð*ÑEÔE×MÒMÑOÔO€FØ�jÔ!€Hà€NØð -ð -ˆØ˜YÔ'¨	Ô2ˆ
Ø ð 	-ð 	-ˆFØ�fŒ~ Ò-Ð-Ø# Gœ_�
Ø Ò,Ð,Ø%,�Nøð		-ð
 ÐÝÐÝ,¨^Ñ<Ô<€OÝ °/Ð BÐCÑCÔCÐCr&   c            	       óN   ‡ — e Zd ZdZddedededdfˆ fd	„Zdee	         fd
„Z
ˆ xZS )ÚGMailLoadera*  Load data from `GMail`.

    There are many ways you could want to load data from GMail.
    This loader is currently fairly opinionated in how to do so.
    The way it does it is it first looks for all messages that you have sent.
    It then looks for messages where you are responding to a previous email.
    It then fetches that previous email, and creates a training example
    of that email, followed by your email.

    Note that there are clear limitations here. For example,
    all examples created are only looking at the previous email for context.

    To use:

    - Set up a Google Developer Account:
        Go to the Google Developer Console, create a project,
        and enable the Gmail API for that project.
        This will give you a credentials.json file that you'll need later.
    éd   FÚcredsÚnÚraise_errorr	   Nc                 ór   •— t          ¦   «                              ¦   «          || _        || _        || _        d S )N)ÚsuperÚ__init__r>   r?   r@   )Úselfr>   r?   r@   Ú	__class__s       €r$   rC   zGMailLoader.__init__W   s5   ø€ Ý‰Œ×ÒÑÔÐØˆŒ
ØˆŒØ&ˆÔÐÐr&   c              #   ó€  K  — ddl m}  |dd| j        ¬¦  «        }|                     ¦   «                              ¦   «                              ddg| j        ¬¦  «                             ¦   «         }|                     d	g ¦  «        }|D ]5}	 t          ||¦  «        V — Œ# t          $ r}| j        r|‚Y d }~Œ.d }~ww xY wd S )
Nr   )ÚbuildÚgmailÚv1)Úcredentialsr)   ÚSENT)r+   ÚlabelIdsÚ
maxResultsr-   )Úgoogleapiclient.discoveryrG   r>   r.   r-   Úlistr?   r0   r/   r:   Ú	Exceptionr@   )rD   rG   r'   Úresultsr-   r#   Úes          r$   Ú	lazy_loadzGMailLoader.lazy_load]   sï   è è € Ø3Ð3Ð3Ð3Ð3Ð3à�%˜ °4´:Ð>Ñ>Ô>ˆà�MŠM‰OŒOßŠX‰ZŒZßŠT˜¨¨¸T¼VˆTÑDÔDßŠW‰YŒYð	 	ð —;’;˜z¨2Ñ.Ô.ˆØð 	ð 	ˆGðÝ'¨°Ñ9Ô9Ð9Ð9Ð9Ð9øÝð ð ð àÔ#ð Ø�Gà�D�D�D�Døøøøðøøøð	ð 	s   ÂBÂ
B;Â(	B6Â6B;)r=   F)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚintÚboolrC   r   r   rS   Ú__classcell__)rE   s   @r$   r<   r<   B   sˆ   ø€ € € € € ðð ð('ð '˜cð ' cð '¸dð 'Ètð 'ð 'ð 'ð 'ð 'ð 'ð˜8 KÔ0ð ð ð ð ð ð ð ð r&   r<   )r   r   Útypingr   r   Úlangchain_core.chat_sessionsr   Úlangchain_core.messagesr   Ú%langchain_community.chat_loaders.baser   r%   r:   r<   © r&   r$   ú<module>r`      së   ðØ €€€Ø 	€	€	€	Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  à 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0à @Ð @Ð @Ð @Ð @Ð @ð ð ¨ð ð ð ð ð0D˜sð D¨Sð D°[ð Dð Dð Dð Dð>.ð .ð .ð .ð .�.ñ .ô .ð .ð .ð .r&   