§
    šŠtjü  ã                   óÆ   — d Z ddlmZ ddlmZmZmZ ddlmZ ddl	m
Z
mZ 	 ddeded	efd
„Zdee         d	ee         fd„Zdeded	efd„Zdee         ded	ee         fd„ZdS )zUtilities for chat loaders.é    )Údeepcopy)ÚIterableÚIteratorÚList)ÚChatSession)Ú	AIMessageÚBaseMessageú

Úchat_sessionÚ	delimiterÚreturnc                 ó`  — g }| d         D �]}t          |j        t          ¦  «        rId}|j        D ]8}t          |t          ¦  «        r||                     dd¦  «        pdz  }Œ3||z  }Œ9||_        t          |j        t
          ¦  «        st          d|j        › �¦  «        ‚|s#|                     t          |¦  «        ¦  «         Œ¼t          |t          |d         ¦  «        ¦  «        �r|d         j
                             d¦  «        �ñ|d         j
        d         |j
                             d¦  «        k    rÂt          |d         j        t
          ¦  «        st          d|d         j        › �¦  «        ‚|d         j        |z   |j        z                        ¦   «         |d         _        |d         j
                             dg ¦  «                             |j
                             d¦  «        pg ¦  «         �Œñ|                     t          |¦  «        ¦  «         �Œt          |¬	¦  «        S )
zÝMerge chat runs together in a chat session.

    A chat run is a sequence of messages from the same sender.

    Args:
        chat_session: A chat session.

    Returns:
        A chat session with merged chat runs.
    ÚmessagesÚ ÚtextzAChat Loaders only support messages with content type string, got éÿÿÿÿÚsenderNÚevents©r   )Ú
isinstanceÚcontentÚlistÚdictÚgetÚstrÚ
ValueErrorÚappendr   ÚtypeÚadditional_kwargsÚstripÚextendr   )r   r   r   Úmessager   r   s         úd/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/chat_loaders/utils.pyÚmerge_chat_runs_in_sessionr$   
   sC  € ð #%€HØ 
Ô+ð "/ñ "/ˆÝ�g”o¥tÑ,Ô,ð 	#ØˆDØ"œ?ð $ð $�Ý˜g¥tÑ,Ô,ð $Ø˜GŸKšK¨°Ñ3Ô3Ð9°rÑ9�D�Dà˜G‘O�D�DØ"ˆGŒOÝ˜'œ/­3Ñ/Ô/ð 	Ýð)Ø”ð)ð )ñô ð ð ð 	/Ø�OŠO�H WÑ-Ô-Ñ.Ô.Ð.Ð.å�w¥ X¨b¤\Ñ 2Ô 2Ñ3Ô3ñ	/à˜”Ô.×2Ò2°8Ñ<Ô<ÐHØ˜”Ô.¨xÔ8ØÔ(×,Ò,¨XÑ6Ô6ò7ð 7õ ˜h rœlÔ2µCÑ8Ô8ð Ý ð2Ø# Bœ<Ô/ð2ð 2ñô ð ð
 ˜”Ô$ yÑ0°7´?ÑBßŠe‰gŒgð �RŒLÔ ð �RŒLÔ*×.Ò.¨x¸Ñ<Ô<×CÒCØÔ)×-Ò-¨hÑ7Ô7Ð=¸2ñô ð ñ ð �OŠO�H WÑ-Ô-Ñ.Ô.Ð.Ñ.Ý Ð)Ñ)Ô)Ð)ó    Úchat_sessionsc              #   ó6   K  — | D ]}t          |¦  «        V — ŒdS )zÞMerge chat runs together.

    A chat run is a sequence of messages from the same sender.

    Args:
        chat_sessions: A list of chat sessions.

    Returns:
        A list of chat sessions with merged chat runs.
    N)r$   )r&   r   s     r#   Úmerge_chat_runsr(   >   s8   è è € ð &ð 7ð 7ˆÝ(¨Ñ6Ô6Ð6Ð6Ð6Ð6ð7ð 7r%   r   c           
      ó*  — g }d}| d         D ]w}|j                              d¦  «        |k    rBt          |j        |j                              ¦   «         t          |dd¦  «        ¬¦  «        }|dz  }|                     |¦  «         Œxt          |¬¦  «        S )	ú„Convert messages from the specified 'sender' to AI messages.

    This is useful for fine-tuning the AI to adapt to your voice.
    r   r   r   ÚexampleN)r   r   r+   é   r   )r   r   r   r   ÚcopyÚgetattrr   r   )r&   r   r   Únum_convertedr"   s        r#   Úmap_ai_messages_in_sessionr0   M   sª   € ð
 €HØ€MØ  Ô,ð !ð !ˆØÔ$×(Ò(¨Ñ2Ô2°fÒ<Ð<ÝØœØ")Ô";×"@Ò"@Ñ"BÔ"BÝ ¨°DÑ9Ô9ðñ ô ˆGð
 ˜QÑˆMØ�Š˜Ñ Ô Ð Ð Ý Ð)Ñ)Ô)Ð)r%   c              #   ó8   K  — | D ]}t          ||¦  «        V — ŒdS )r*   N)r0   )r&   r   r   s      r#   Úmap_ai_messagesr2   `   s:   è è € ð &ð ?ð ?ˆÝ(¨°vÑ>Ô>Ð>Ð>Ð>Ð>ð?ð ?r%   N)r
   )Ú__doc__r-   r   Útypingr   r   r   Úlangchain_core.chat_sessionsr   Úlangchain_core.messagesr   r	   r   r$   r(   r0   r2   © r%   r#   ú<module>r8      s1  ðØ !Ð !à Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +à 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :ð 17ð1*ð 1*Øð1*Ø*-ð1*àð1*ð 1*ð 1*ð 1*ðh7 8¨KÔ#8ð 7¸XÀkÔ=Rð 7ð 7ð 7ð 7ð*¨kð *À3ð *È;ð *ð *ð *ð *ð&?Ø˜KÔ(ð?Ø25ð?àˆkÔð?ð ?ð ?ð ?ð ?ð ?r%   