
    f3fi                     r    d Z ddlmZmZ ddlmZ ddlmZmZm	Z	 ddl
mZ  G d de      Z G d d	ee      Zy
)zChat Message.    )AnyLiteral)override)BaseMessageBaseMessageChunkmerge_content)merge_dictsc                   2    e Zd ZU dZeed<   	 dZed   ed<   y)ChatMessagez>Message that can be assigned an arbitrary speaker (i.e. role).rolechattypeN)__name__
__module____qualname____doc__str__annotations__r   r        Z/var/www/auto_recruiter/arenv/lib/python3.12/site-packages/langchain_core/messages/chat.pyr   r      s    H
I,"D'&/">r   r   c                   N     e Zd ZU dZd Zed    ed<   	 edede	f fd       Z
 xZS )ChatMessageChunkzChat Message chunk.r   otherreturnc           	         t        |t              r| j                  |j                  k7  rd}t        |      | j	                  | j                  t        | j                  |j                        t        | j                  |j                        t        | j                  |j                        | j                        S t        |t              r| j	                  | j                  t        | j                  |j                        t        | j                  |j                        t        | j                  |j                        | j                        S t        | 5  |      S )Nz:Cannot concatenate ChatMessageChunks with different roles.)r   contentadditional_kwargsresponse_metadataid)
isinstancer   r   
ValueError	__class__r   r   r	   r   r   r    r   super__add__)selfr   msgr#   s      r   r%   zChatMessageChunk.__add__"   s#   e-.yyEJJ&R o%>>YY%dllEMMB"-**E,C,C# #.**E,C,C# 77 " 
 
 e-.>>YY%dllEMMB"-**E,C,C# #.**E,C,C# 77 " 
 
 wu%%r   )r   r   r   r   r   r   r   r   r   r   r%   __classcell__)r#   s   @r   r   r      s<    
 );D'$
%:>&S &%5 & &r   r   N)r   typingr   r   typing_extensionsr   langchain_core.messages.baser   r   r   langchain_core.utils._merger	   r   r   r   r   r   <module>r-      s8      & 
 4?+ ?'&{$4 '&r   