§
    æ˜ºhÆ  ã                   óÆ   — 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          ¦  «        st          d|j        › �¦  «        ‚|s#|                     t          |¦  «        ¦  «         ŒYt          |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.
    ÚmessageszAChat Loaders only support messages with content type string, got éÿÿÿÿÚsenderNÚevents©r   )Ú
isinstanceÚcontentÚstrÚ
ValueErrorÚappendr   ÚtypeÚadditional_kwargsÚgetÚstripÚextendr   )r   r   r   Úmessages       ún/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/langchain_community/chat_loaders/utils.pyÚmerge_chat_runs_in_sessionr    	   sÖ  € ð #%€HØ 
Ô+ð /ñ /ˆÝ˜'œ/­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$   5   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_sessionr,   D   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)r,   )r"   r   r   s      r   Úmap_ai_messagesr.   W   s:   è è € ð &ð ?ð ?ˆÝ(¨°vÑ>Ô>Ð>Ð>Ð>Ð>ð?ð ?r!   N)r
   )Ú__doc__r)   r   Útypingr   r   r   Úlangchain_core.chat_sessionsr   Úlangchain_core.messagesr   r	   r   r    r$   r,   r.   © r!   r   ú<module>r4      s1  ðØ !Ð !Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +à 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :ð 17ð)*ð )*Øð)*Ø*-ð)*àð)*ð )*ð )*ð )*ðX7 8¨KÔ#8ð 7¸XÀkÔ=Rð 7ð 7ð 7ð 7ð*¨kð *À3ð *È;ð *ð *ð *ð *ð&?Ø˜KÔ(ð?Ø25ð?àˆkÔð?ð ?ð ?ð ?ð ?ð ?r!   