§
    æ˜ºhl  ã                   óð   — d Z ddlZddlmZmZmZmZm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 ddlmZ dd	lmZ  ej        e¦  «        Zd
ededefd„Zdee         defd„Z G d„ dee¦  «        ZdS )z#Wrapper around Minimax chat models.é    N)ÚAnyÚDictÚListÚOptionalÚcast)ÚAsyncCallbackManagerForLLMRunÚCallbackManagerForLLMRun)ÚBaseChatModel)Ú	AIMessageÚBaseMessageÚHumanMessage)Ú
ChatResult)ÚMinimaxCommon)Úenforce_stop_tokensÚmsg_typeÚtextÚreturnc                 ó   — | |dœS )N)Úsender_typer   © )r   r   s     úo/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/langchain_community/chat_models/minimax.pyÚ_parse_messager      s   € Ø#¨TÐ2Ð2Ð2ó    Úhistoryc                 ó(  — g }| D ]Œ}t          t          |j        ¦  «        }t          |t          ¦  «        r#|                     t          d|¦  «        ¦  «         t          |t          ¦  «        r#|                     t          d|¦  «        ¦  «         Œ�|S )z*Parse a sequence of messages into history.ÚUSERÚBOT)r   ÚstrÚcontentÚ
isinstancer   Úappendr   r   )r   Úchat_historyÚmessager   s       r   Ú_parse_chat_historyr$      s’   € à€LØð @ð @ˆÝ•s˜GœOÑ,Ô,ˆÝ�g�|Ñ,Ô,ð 	AØ×Ò¥¨v°wÑ ?Ô ?Ñ@Ô@Ð@Ý�g�yÑ)Ô)ð 	@Ø×Ò¥¨u°gÑ >Ô >Ñ?Ô?Ð?øØÐr   c                   ó¶   — e Zd ZdZ	 	 d
dee         deee                  dee         de	de
f
d„Z	 	 d
dee         deee                  dee         de	de
f
d	„ZdS )ÚMiniMaxChata”  Wrapper around Minimax large language models.

    To use, you should have the environment variable ``MINIMAX_GROUP_ID`` and
    ``MINIMAX_API_KEY`` set with your API token, or pass it as a named parameter to
    the constructor.

    Example:
        .. code-block:: python

            from langchain_community.chat_models import MiniMaxChat
            llm = MiniMaxChat(model_name="abab5-chat")

    NÚmessagesÚstopÚrun_managerÚkwargsr   c                 ó¶   — |st          d¦  «        ‚t          |¦  «        }| j        }||d<   | j                             |¦  «        }|€|nt          ||¦  «        S )a  Generate next turn in the conversation.
        Args:
            messages: The history of the conversation as a list of messages. Code chat
                does not support context.
            stop: The list of stop words (optional).
            run_manager: The CallbackManager for LLM run, it's not used at the moment.

        Returns:
            The ChatResult that contains outputs generated by the model.

        Raises:
            ValueError: if the last message in the list is not from human.
        z:You should provide at least one message to start the chat!r'   )Ú
ValueErrorr$   Ú_default_paramsÚ_clientÚpostr   )Úselfr'   r(   r)   r*   r   Úpayloadr   s           r   Ú	_generatezMiniMaxChat._generate6   sr   € ð( ð 	ÝØLñô ð õ & hÑ/Ô/ˆØÔ&ˆØ%ˆ�
ÑØŒ|× Ò  Ñ)Ô)ˆð �|ˆtˆtÕ)<¸TÀ4Ñ)HÔ)HÐHr   c              ‹   ó$   K  — t          d¦  «        ‚)Nz8Minimax AI doesn't support async requests at the moment.)ÚNotImplementedError)r0   r'   r(   r)   r*   s        r   Ú
_ageneratezMiniMaxChat._agenerateV   s   è è € õ "ØJñ
ô 
ð 	
r   )NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r	   r   r   r2   r   r5   r   r   r   r&   r&   '   só   € € € € € ðð ð" %)Ø:>ð	Ið Ià�{Ô#ðIð �t˜C”yÔ!ðIð Ð6Ô7ð	Ið
 ðIð 
ðIð Ið Ið IðF %)Ø?Cð		
ð 	
à�{Ô#ð	
ð �t˜C”yÔ!ð	
ð Ð;Ô<ð		
ð
 ð	
ð 
ð	
ð 	
ð 	
ð 	
ð 	
ð 	
r   r&   )r9   ÚloggingÚtypingr   r   r   r   r   Úlangchain_core.callbacksr   r	   Ú*langchain_core.language_models.chat_modelsr
   Úlangchain_core.messagesr   r   r   Úlangchain_core.outputsr   Ú langchain_community.llms.minimaxr   Úlangchain_community.llms.utilsr   Ú	getLoggerr6   Úloggerr   r   r$   r&   r   r   r   ú<module>rD      s}  ðØ )Ð )Ø €€€Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2ðð ð ð ð ð ð ð ð EÐ DÐ DÐ DÐ DÐ Dðð ð ð ð ð ð ð ð ð ð
 .Ð -Ð -Ð -Ð -Ð -à :Ð :Ð :Ð :Ð :Ð :Ø >Ð >Ð >Ð >Ð >Ð >à	ˆÔ	˜8Ñ	$Ô	$€ð3˜Sð 3¨ð 3°ð 3ð 3ð 3ð 3ð	  kÔ!2ð 	°tð 	ð 	ð 	ð 	ð8
ð 8
ð 8
ð 8
ð 8
�- ñ 8
ô 8
ð 8
ð 8
ð 8
r   