Ë
    µŒj�  ã                  óø   — 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j4                  e«      Z G d
„ de«      Z G d„ de«      Z G d„ dee«      Zy)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                  ól   — 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y)Ú_MinimaxEndpointClientz(API client for the Minimax LLM endpoint.ÚstrÚhostÚgroup_idr   Úapi_keyÚapi_urlÚbefore)Úmodec                ó:   — d|vr|d   }|d   }|› d|› �}||d<   |S )Nr   r   r   z /v1/text/chatcompletion?GroupId=© )ÚclsÚvaluesr   r   r   s        új/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/llms/minimax.pyÚset_api_urlz"_MinimaxEndpointClient.set_api_url"   s?   € ð ˜FÑ"Ø˜&‘>ˆDØ˜jÑ)ˆHØ˜Ð>¸x¸jÐIˆGØ 'ˆF�9ÑØˆó    c                ó°  — dd| j                   j                  «       › �i}t        j                  | j                  ||¬«      }|j
                  s%t        d|j                  › d|j                  › �«      ‚|j                  «       d   d   dkD  r9t        d	|j                  «       d   d   › d|j                  «       d   d
   › �«      ‚|j                  «       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&   )ÚselfÚrequestr%   Úresponses       r    r-   z_MinimaxEndpointClient.post,   sÏ   € Ø" g¨d¯l©l×.KÑ.KÓ.MÐ-NÐ$OÐPˆÜ—=‘= §¡°wÀWÔMˆà�{Š{Ü˜u X×%9Ñ%9Ð$:¸(À8Ç=Á=À/ÐRÓSÐSØ�=‰=‹?˜;Ñ'¨Ñ6¸Ò:ÜØ�x—}‘}“ {Ñ3°MÑBÐCØ˜8Ÿ=™=›?¨;Ñ7¸ÑEÐFðHóð ð �}‰}‹˜wÑ'Ð'r"   N)r   úDict[str, Any]Úreturnr   )r2   r   r5   r   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__r   Úclassmethodr!   r-   r   r"   r    r   r      s>   … Ù2à
ƒIØƒMØÓØƒ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y)!ÚMinimaxCommonz4Common parameters for Minimax large language models.r   )Úprotected_namespacesr   Ú_clientzabab5.5-chatr   Úmodelé   ÚintÚ
max_tokensgffffffæ?ÚfloatÚtemperaturegffffffî?Útop_p)Údefault_factoryr4   Úmodel_kwargsNzOptional[str]Úminimax_api_hostÚminimax_group_idzOptional[SecretStr]Úminimax_api_keyc                ó°   — 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ó%
ˆÐ Ñ!ô &:ØÐ&Ð(:ó&
ˆÐ!Ñ"ô &:ØØØØ.ô	&
ˆÐ!Ñ"ô 3ØÐ*Ñ+ØÐ,Ñ-ØÐ.Ñ/ô
ˆˆyÑð
 ˆr"   c                óx   — | 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   ©r1   s    r    Ú_default_paramszMinimaxCommon._default_paramse   s<   € ð —Z‘ZØ"&§/¡/Ø×+Ñ+Ø—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™JÐ'Ð@¨4×+?Ñ+?Ð@Ð@r"   c                 ó   — y)zReturn type of llm.Úminimaxr   rT   s    r    Ú	_llm_typezMinimaxCommon._llm_typeu   s   € ð r"   )r   r   r5   r   )r5   r4   )r5   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=   :   sÌ   … Ù>á°2Ô6€Là#Ó#Ø€Eˆ3ÓØØ€J�ÓØAØ€K�ÓØQØ€Eˆ5ÓØDÙ#(¸Ô#>€L�.Ó>ØVØ&*Ð�mÓ*Ø&*Ð�mÓ*Ø+/€OÐ(Ó/àòó ðð, ò
ó ð
ð òAó ðAð òó ñr"   r=   c                  ó0   — e Zd ZdZ	 	 d	 	 	 	 	 	 	 	 	 dd„Zy)Ú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")
    Nc                ó¤   — | j                   }d|dœg|d<   |j                  |«       | j                  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_typer0   Úmessages)rU   Úupdater?   r-   r   )r1   ÚpromptÚstopÚrun_managerÚkwargsr2   r0   s          r    Ú_callzMinimax._callˆ   sZ   € ð  ×&Ñ&ˆØ/5¸vÑFÐGˆ�
ÑØ�‰�vÔØ�|‰|× Ñ  Ó)ˆØÐô ' t¨TÓ2ˆDàˆr"   )NN)
re   r   rf   zOptional[List[str]]rg   z"Optional[CallbackManagerForLLMRun]rh   r   r5   r   )r6   r7   r8   r9   ri   r   r"   r    r_   r_   {   sD   „ ñ
ð %)Ø:>ð	àðð "ðð 8ð	ð
 ðð 
ô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>rt      sp   ðÙ "å "ã ÷ó ó õõ 4ß VÑ Vß MÕ Må >à	ˆ×	Ñ	˜8Ó	$€ô(˜Yô (ô@>�Iô >ôB&ˆm˜Sõ &r"   