Ë
    µŒjê  ã                  óª   — d dl mZ d dlmZmZmZmZmZ d dlm	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  G d„ d	e«      Z G d
„ dee«      Zy)é    )Úannotations)ÚAnyÚDictÚIteratorÚListÚOptional)ÚCallbackManagerForLLMRun)ÚLLM)ÚGenerationChunk)Úconvert_to_secret_strÚget_from_dict_or_envÚpre_init)Ú	BaseModelÚ
ConfigDictÚFieldÚ	SecretStrc                  ó$  — e Zd ZU dZ ed¬«      Z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<   	 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y)&ÚVolcEngineMaasBasez%Base class for VolcEngineMaas models.© )Úprotected_namespacesNr   ÚclientzOptional[SecretStr]Úvolc_engine_maas_akÚvolc_engine_maas_skz*maas-api.ml-platform-cn-beijing.volces.comzOptional[str]ÚendpointÚRegionÚregionzskylark-lite-publicÚstrÚmodelÚmodel_versiongš™™™™™é?zOptional[float]Útop_pgffffffî?Útemperature)Údefault_factoryúDict[str, Any]Úmodel_kwargsFÚboolÚ	streamingé<   zOptional[int]Úconnect_timeoutÚread_timeoutc                óŽ  — t        t        |dd«      «      }t        t        |dd«      «      }|d   }|d   �|d   dk7  r|d   }	 ddlm}  |||d	   |d
   |d   ¬«      }|j	                  |j                  «       «       |j                  |j                  «       «       ||d<   ||d<   ||d<   |S # t        $ r t        d«      ‚w xY w)Nr   ÚVOLC_ACCESSKEYr   ÚVOLC_SECRETKEYr   Ú r   )ÚMaasServicer   r(   r)   )Úconnection_timeoutÚsocket_timeoutr   zMvolcengine package not found, please install it with `pip install volcengine`)r   r   Úvolcengine.maasr.   Úset_akÚget_secret_valueÚset_skÚImportError)ÚclsÚvaluesr   r   r   r.   Úmaass          úr/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/llms/volcengine_maas.pyÚvalidate_environmentz'VolcEngineMaasBase.validate_environment9   s	  € ä3Ü  Ð)>Ð@PÓQó
Ðô 4Ü  Ð)>Ð@PÓQó
Ðð ˜*Ñ%ˆØ�*ÑÐ)¨f°ZÑ.@ÀBÒ.FØ˜jÑ)ˆHð	Ý3áØØ�xÑ Ø#)Ð*;Ñ#<Ø% nÑ5ô	ˆDð �K‰KÐ+×<Ñ<Ó>Ô?Ø�K‰KÐ+×<Ñ<Ó>Ô?à,?ˆFÐ(Ñ)Ø,?ˆFÐ(Ñ)Ø#ˆF�8Ñð ˆøô ò 	Üð+óð ð	ús   ÁA(B/ Â/Cc                óT   — | j                   | j                  dœ}i |¥| j                  ¥S )z:Get the default parameters for calling VolcEngineMaas API.)r    r!   )r    r!   r$   )ÚselfÚnormal_paramss     r9   Ú_default_paramsz"VolcEngineMaasBase._default_paramsZ   s3   € ð —Z‘ZØ×+Ñ+ñ
ˆð
 6�-Ð5 4×#4Ñ#4Ð5Ð5ó    )r7   r   Úreturnr   )r@   r#   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úmodel_configr   Ú__annotations__r   r   r   r   r   r   r    r!   r   Údictr$   r&   r(   r)   r   r:   Úpropertyr>   r   r?   r9   r   r      sò   … Ù/á°2Ô6€Là€FˆCÓà/3ÐÐ,Ó3Ø$Ø/3ÐÐ,Ó3Ø$àJ€HˆmÓJØ-à$€FˆMÓ$Ø+à&€Eˆ3Ó&ð>ð $(€M�=Ó'ðRð !€Eˆ?Ó ØDà#'€K�Ó'ØQá#(¸Ô#>€L�.Ó>ØGà€IˆtÓØ(à%'€O�]Ó'ØRà"$€L�-Ó$ðð òó ðð@ ò6ó ñ6r?   r   c                  óv   — e Zd ZdZedd„«       Z	 	 	 	 	 	 dd„Z	 	 d		 	 	 	 	 	 	 	 	 d
d„Z	 	 d		 	 	 	 	 	 	 	 	 dd„Zy)ÚVolcEngineMaasLLMa0  volc engine maas hosts a plethora of models.
    You can utilize these models through this class.

    To use, you should have the ``volcengine`` python package installed.
    and set access key and secret key by environment variable or direct pass those to
    this class.
    access key, secret key are required parameters which you could get help
    https://www.volcengine.com/docs/6291/65568

    In order to use them, it is necessary to install the 'volcengine' Python package.
    The access key and secret key must be set either via environment variables or
    passed directly to this class.
    access key and secret key are mandatory parameters for which assistance can be
    sought at https://www.volcengine.com/docs/6291/65568.

    Example:
        .. code-block:: python

            from langchain_community.llms import VolcEngineMaasLLM
            model = VolcEngineMaasLLM(model="skylark-lite-public",
                                          volc_engine_maas_ak="your_ak",
                                          volc_engine_maas_sk="your_sk")
    c                 ó   — y)zReturn type of llm.zvolc-engine-maas-llmr   )r<   s    r9   Ú	_llm_typezVolcEngineMaasLLM._llm_type~   s   € ð &r?   c                ó”   — dd| j                   ii}| j                  �| j                  |d   d<   i |¥d|dœgi | j                  ¥|¥dœ¥S )Nr   ÚnameÚversionÚuser)ÚroleÚcontent)ÚmessagesÚ
parameters)r   r   r>   )r<   ÚpromptÚkwargsÚ	model_reqs       r9   Ú_convert_prompt_msg_paramsz,VolcEngineMaasLLM._convert_prompt_msg_paramsƒ   st   € ð Ø˜Ÿ
™
ðð
ˆ	ð
 ×ÑÐ)Ø,0×,>Ñ,>ˆI�gÑ˜yÑ)ð
Øð
à"(°VÑ<Ð=Ø<˜T×1Ñ1Ð<°VÐ<ò
ð 	
r?   Nc                ó4  — | j                   r-d} | j                  |||fi |¤ŽD ]  }||j                  z  }Œ |S  | j                  |fi |¤Ž}| j                  j                  |«      }|j                  di «      j                  di «      j                  dd«      S )Nr-   ÚchoiceÚmessagerR   )r&   Ú_streamÚtextrX   r   ÚchatÚget)	r<   rU   ÚstopÚrun_managerrV   Ú
completionÚchunkÚparamsÚresponses	            r9   Ú_callzVolcEngineMaasLLM._call–   s™   € ð �>Š>ØˆJØ%˜Ÿ™ f¨d°KÑJÀ6ÔJ�Ø˜eŸj™jÑ(‘
ð KàÐØ0�×0Ñ0°ÑB¸6ÑBˆØ—;‘;×#Ñ# FÓ+ˆà�|‰|˜H bÓ)×-Ñ-¨i¸Ó<×@Ñ@ÀÈBÓOÐOr?   c              +  ó6  K  —  | j                   |fi |¤Ž}| j                  j                  |«      D ]d  }|sŒt        |j	                  di «      j	                  di «      j	                  dd«      ¬«      }|r|j                  |j                  |¬«       |–— Œf y ­w)NrZ   r[   rR   r-   )r]   )rc   )rX   r   Ústream_chatr   r_   Úon_llm_new_tokenr]   )r<   rU   r`   ra   rV   rd   Úresrc   s           r9   r\   zVolcEngineMaasLLM._stream§   s�   è ø€ ð 1�×0Ñ0°ÑB¸6ÑBˆØ—;‘;×*Ñ*¨6Ö2ˆCÚÜ'ØŸ™ ¨2Ó.×2Ñ2°9¸bÓA×EÑEÀiÐQSÓTô�ñ Ø×0Ñ0°·±À5Ð0ÔIØ“ñ 3ùs   ‚4B·A"B)r@   r   )rU   r   rV   r   r@   rG   )NN)
rU   r   r`   úOptional[List[str]]ra   ú"Optional[CallbackManagerForLLMRun]rV   r   r@   r   )
rU   r   r`   rk   ra   rl   rV   r   r@   zIterator[GenerationChunk])	rA   rB   rC   rD   rH   rL   rX   rf   r\   r   r?   r9   rJ   rJ   e   s¼   „ ñð0 ò&ó ð&ð
àð
ð ð
ð 
ó	
ð, %)Ø:>ð	PàðPð "ðPð 8ð	Pð
 ðPð 
óPð( %)Ø:>ð	àðð "ðð 8ð	ð
 ðð 
#ôr?   rJ   N)Ú
__future__r   Útypingr   r   r   r   r   Úlangchain_core.callbacksr	   Ú#langchain_core.language_models.llmsr
   Úlangchain_core.outputsr   Úlangchain_core.utilsr   r   r   Úpydanticr   r   r   r   r   rJ   r   r?   r9   Ú<module>rt      sC   ðÝ "ç 6Õ 6å =Ý 3Ý 2ß VÑ Vß <Ó <ôV6˜ô V6ôrQ˜Ð/õ Qr?   