§
    šŠtj�  ã                  ó  — d Z ddlmZ ddlZddlmZmZmZmZ ddl	Z	ddl
mZ ddlmZ ddlmZmZmZ ddlmZmZmZmZmZ dd	lmZ  ej        e¦  «        Z G d
„ de¦  «        Z G d„ de¦  «        Z G d„ dee¦  «        ZdS )zWrapper around Minimax APIs.é    )ÚannotationsN)ÚAnyÚDictÚListÚOptional)ÚCallbackManagerForLLMRun)ÚLLM)Úconvert_to_secret_strÚget_from_dict_or_envÚpre_init)Ú	BaseModelÚ
ConfigDictÚFieldÚ	SecretStrÚmodel_validator)Úenforce_stop_tokensc                  ó€   — e Zd ZU dZded<   ded<   ded<   ded<    ed¬	¦  «        edd„¦   «         ¦   «         Zdd„ZdS )Ú_MinimaxEndpointClientz(API client for the Minimax LLM endpoint.ÚstrÚhostÚgroup_idr   Úapi_keyÚapi_urlÚbefore)ÚmodeÚvaluesúDict[str, Any]Úreturnr   c                óF   — d|vr|d         }|d         }|› d|› �}||d<   |S )Nr   r   r   z /v1/text/chatcompletion?GroupId=© )Úclsr   r   r   r   s        ú^/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/llms/minimax.pyÚset_api_urlz"_MinimaxEndpointClient.set_api_url"   sD   € ð ˜FÐ"Ð"Ø˜&”>ˆDØ˜jÔ)ˆHØÐIÐI¸xÐIÐIˆGØ 'ˆF�9ÑØˆó    Úrequestc                óà  — dd| j                              ¦   «         › �i}t          j        | j        ||¬¦  «        }|j        st          d|j        › d|j        › �¦  «        ‚| 	                    ¦   «         d         d         dk    rQt          d	| 	                    ¦   «         d         d         › d| 	                    ¦   «         d         d
         › �¦  «        ‚| 	                    ¦   «         d         S )NÚAuthorizationzBearer )ÚheadersÚjsonzHTTP z error: Ú	base_respÚstatus_coder   zAPI Ú
status_msgÚreply)
r   Úget_secret_valueÚrequestsÚpostr   ÚokÚ
ValueErrorr+   Útextr)   )Úselfr%   r(   Úresponses       r"   r0   z_MinimaxEndpointClient.post,   sõ   € Ø"Ð$O¨d¬l×.KÒ.KÑ.MÔ.MÐ$OÐ$OÐPˆÝ”= ¤°wÀWÐMÑMÔMˆàŒ{ð 	TÝÐR XÔ%9ÐRÐRÀ8Ä=ÐRÐRÑSÔSÐSØ�=Š=‰?Œ?˜;Ô'¨Ô6¸Ò:Ð:ÝðH�x—}’}‘” {Ô3°MÔBð Hð HØ#Ÿ=š=™?œ?¨;Ô7¸ÔEðHð Hñô ð ð �}Š}‰Œ˜wÔ'Ð'r$   N)r   r   r   r   )r%   r   r   r   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r   Úclassmethodr#   r0   r    r$   r"   r   r      s�   € € € € € € Ø2Ð2à€I€I�IØ€M€M�MØÐÐÑØ€L€L�Là€_˜(Ð#Ñ#Ô#Øðð ð ñ „[ñ $Ô#ðð(ð (ð (ð (ð (ð (r$   r   c                  ó$  — e Zd ZU dZ ed¬¦  «        Zded<   dZded<   	 d	Zd
ed<   	 dZ	ded<   	 dZ
ded<   	  ee¬¦  «        Zded<   	 dZded<   dZded<   dZded<   ed!d„¦   «         Zed"d„¦   «         Zed"d„¦   «         Zed#d „¦   «         ZdS )$ÚMinimaxCommonz4Common parameters for Minimax large language models.r    )Úprotected_namespacesr   Ú_clientzabab5.5-chatr   Úmodelé   ÚintÚ
max_tokensgffffffæ?ÚfloatÚtemperaturegffffffî?Útop_p)Údefault_factoryr   Úmodel_kwargsNzOptional[str]Úminimax_api_hostÚminimax_group_idzOptional[SecretStr]Úminimax_api_keyr   r   r   c                óê   — t          t          |dd¦  «        ¦  «        |d<   t          |dd¦  «        |d<   t          |ddd¬¦  «        |d<   t          |d         |d         |d         ¬	¦  «        |d
<   |S )z?Validate that api key and python package exists in environment.rK   ÚMINIMAX_API_KEYrJ   ÚMINIMAX_GROUP_IDrI   ÚMINIMAX_API_HOSTzhttps://api.minimax.chat)Údefault)r   r   r   r?   )r
   r   r   )r!   r   s     r"   Úvalidate_environmentz"MinimaxCommon.validate_environmentN   s¯   € õ %:Ý  Ð):Ð<MÑNÔNñ%
ô %
ˆÐ Ñ!õ &:ØÐ&Ð(:ñ&
ô &
ˆÐ!Ñ"õ &:ØØØØ.ð	&
ñ &
ô &
ˆÐ!Ñ"õ 3ØÐ*Ô+ØÐ,Ô-ØÐ.Ô/ð
ñ 
ô 
ˆˆyÑð
 ˆr$   c                óF   — | j         | j        | j        | j        dœ| j        ¥S )z2Get the default parameters for calling OpenAI API.)r@   Útokens_to_generaterE   rF   )r@   rC   rE   rF   rH   ©r4   s    r"   Ú_default_paramszMinimaxCommon._default_paramse   s5   € ð ”ZØ"&¤/ØÔ+Ø”Zð	
ð 
ð
 Ôð
ð 	
r$   c                ó&   — i d| j         i¥| j        ¥S )zGet the identifying parameters.r@   )r@   rU   rT   s    r"   Ú_identifying_paramsz!MinimaxCommon._identifying_paramsp   s   € ð A�7˜DœJÐ'Ð@¨4Ô+?Ð@Ð@r$   c                ó   — dS )zReturn type of llm.Úminimaxr    rT   s    r"   Ú	_llm_typezMinimaxCommon._llm_typeu   s	   € ð ˆyr$   )r   r   r   r   )r   r   )r   r   )r6   r7   r8   r9   r   Úmodel_configr:   r@   rC   rE   rF   r   ÚdictrH   rI   rJ   rK   r   rQ   ÚpropertyrU   rW   rZ   r    r$   r"   r=   r=   :   sb  € € € € € € Ø>Ð>à�:°2Ð6Ñ6Ô6€Là#Ð#Ð#Ñ#Ø€EÐÐÐÑØØ€JÐÐÐÑØAØ€KÐÐÐÑØQØ€EÐÐÐÑØDØ#( 5¸Ð#>Ñ#>Ô#>€LÐ>Ð>Ð>Ñ>ØVØ&*ÐÐ*Ð*Ð*Ñ*Ø&*ÐÐ*Ð*Ð*Ñ*Ø+/€OÐ/Ð/Ð/Ñ/àðð ð ñ „Xðð, ð
ð 
ð 
ñ „Xð
ð ðAð Að Añ „XðAð ðð ð ñ „Xðð ð r$   r=   c                  ó    — e Zd ZdZ	 	 ddd„ZdS )ÚMinimaxaº  Minimax large language models.

    To use, you should have the environment variable
    ``MINIMAX_API_KEY`` and ``MINIMAX_GROUP_ID`` set with your API key,
    or pass them as a named parameter to the constructor.
    Example:
     . code-block:: python
         from langchain_community.llms.minimax import Minimax
         minimax = Minimax(model="<model_name>", minimax_api_key="my-api-key",
          minimax_group_id="my-group-id")
    NÚpromptr   ÚstopúOptional[List[str]]Úrun_managerú"Optional[CallbackManagerForLLMRun]Úkwargsr   r   c                ó¨   — | j         }d|dœg|d<   |                     |¦  «         | j                             |¦  «        }|�t	          ||¦  «        }|S )a)  Call out to Minimax's completion endpoint to chat
        Args:
            prompt: The prompt to pass into the model.
        Returns:
            The string generated by the model.
        Example:
            .. code-block:: python
                response = minimax("Tell me a joke.")
        ÚUSER)Úsender_typer3   Úmessages)rU   Úupdater?   r0   r   )r4   r`   ra   rc   re   r%   r3   s          r"   Ú_callzMinimax._callˆ   sd   € ð  Ô&ˆØ/5¸vÐFÐFÐGˆ�
ÑØ�Š�vÑÔÐØŒ|× Ò  Ñ)Ô)ˆØÐõ ' t¨TÑ2Ô2ˆDàˆr$   )NN)
r`   r   ra   rb   rc   rd   re   r   r   r   )r6   r7   r8   r9   rk   r    r$   r"   r_   r_   {   s?   € € € € € ð
ð 
ð %)Ø:>ð	ð ð ð ð ð ð r$   r_   ) r9   Ú
__future__r   ÚloggingÚtypingr   r   r   r   r/   Úlangchain_core.callbacksr   Ú#langchain_core.language_models.llmsr	   Úlangchain_core.utilsr
   r   r   Úpydanticr   r   r   r   r   Úlangchain_community.llms.utilsr   Ú	getLoggerr6   Úloggerr   r=   r_   r    r$   r"   ú<module>rv      s—  ðØ "Ð "à "Ð "Ð "Ð "Ð "Ð "à €€€ðð ð ð ð ð ð ð ð ð ð ð ð €€€ðð ð ð ð ð ð 4Ð 3Ð 3Ð 3Ð 3Ð 3Ø VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VØ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ Mà >Ð >Ð >Ð >Ð >Ð >à	ˆÔ	˜8Ñ	$Ô	$€ð(ð (ð (ð (ð (˜Yñ (ô (ð (ð@>ð >ð >ð >ð >�Iñ >ô >ð >ðB&ð &ð &ð &ð &ˆm˜Sñ &ô &ð &ð &ð &r$   