
    dh                        S SK Jr  S SKJrJrJrJrJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJrJrJr  S SKJrJrJrJr   " S S	\5      r " S
 S\\5      rg)    )annotations)AnyDictIteratorListOptional)CallbackManagerForLLMRun)LLM)GenerationChunk)convert_to_secret_strget_from_dict_or_envpre_init)	BaseModel
ConfigDictField	SecretStrc                  $   \ rS rSr% Sr\" SS9rSrS\S'   Sr	S\S	'    Sr
S\S
'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    SrS\S'    \" \S9rS\S'    SrS\S'    SrS \S!'    SrS \S"'    \S%S# j5       r\S&S$ j5       rSrg)'VolcEngineMaasBase   z%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                   [        [        USS5      5      n[        [        USS5      5      nUS   nUS   b  US   S:w  a  US   n SSKJn  U" UUS	   US
   US   S9nUR	                  UR                  5       5        UR                  UR                  5       5        X!S'   X1S'   XaS'   U$ ! [         a    [        S5      ef = f)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          `/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/llms/volcengine_maas.pyvalidate_environment'VolcEngineMaasBase.validate_environment9   s   3 )>@PQ
 4 )>@PQ
 *%*)fZ.@B.Fj)H	3x #)*;#<%n5	D KK+<<>?KK+<<>?,?(),?()#8   	+ 	s   A"B+ +Cc                T    U R                   U R                  S.n0 UEU R                  E$ )z:Get the default parameters for calling VolcEngineMaas API.)r!   r"   )r!   r"   r%   )selfnormal_paramss     r:   _default_params"VolcEngineMaasBase._default_paramsZ   s3     ZZ++

 6-54#4#455    )r8   r   returnr   )rC   r$   )__name__
__module____qualname____firstlineno____doc__r   model_configr   __annotations__r   r   r   r   r   r    r!   r"   r   dictr%   r'   r)   r*   r   r;   propertyr@   __static_attributes__r   rB   r:   r   r      s    /26LFC/3,3$/3,3$JHmJ-$FM$+&E3&> $(M='R !E? D#'K'Q#(#>L.>GIt(%'O]'R"$L-$  @ 6 6rB   r   c                      \ rS rSrSr\S	S j5       r      S
S jr  S         SS jjr  S         SS jjr	Sr
g)VolcEngineMaasLLMe   a  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                    g)zReturn type of llm.zvolc-engine-maas-llmr   )r>   s    r:   	_llm_typeVolcEngineMaasLLM._llm_type~   s     &rB   c                    SSU R                   00nU R                  b  U R                  US   S'   0 UESUS./0 U R                  EUES.E$ )Nr   nameversionuser)rolecontent)messages
parameters)r   r    r@   )r>   promptkwargs	model_reqs       r:   _convert_prompt_msg_params,VolcEngineMaasLLM._convert_prompt_msg_params   st     


	
 ),0,>,>Igy)

"(V<=<T11<V<
 	
rB   Nc                >   U R                   (       a-  SnU R                  " XU40 UD6 H  nXVR                  -  nM     U$ U R                  " U40 UD6nU R                  R                  U5      nUR                  S0 5      R                  S0 5      R                  SS5      $ )Nr.   choicemessagerY   )r'   _streamtextr_   r   chatget)	r>   r\   stoprun_managerr]   
completionchunkparamsresponses	            r:   _callVolcEngineMaasLLM._call   s     >>JfKJ6Jjj(
 K00B6B;;##F+||Hb)--i<@@BOOrB   c              +  D  #    U R                   " U40 UD6nU R                  R                  U5       Hj  nU(       d  M  [        UR	                  S0 5      R	                  S0 5      R	                  SS5      S9nU(       a  UR                  UR                  US9  Uv   Ml     g 7f)Nrb   rc   rY   r.   )re   )rk   )r_   r   stream_chatr   rg   on_llm_new_tokenre   )r>   r\   rh   ri   r]   rl   resrk   s           r:   rd   VolcEngineMaasLLM._stream   s      00B6B;;**62Cs'2.229bAEEiQST 0050I 3s   7B A#B r   )rC   r   )r\   r   r]   r   rC   rK   )NN)
r\   r   rh   Optional[List[str]]ri   "Optional[CallbackManagerForLLMRun]r]   r   rC   r   )
r\   r   rh   ru   ri   rv   r]   r   rC   zIterator[GenerationChunk])rD   rE   rF   rG   rH   rL   rR   r_   rn   rd   rM   r   rB   r:   rO   rO   e   s    0 & &

 
 
	
, %):>	PP "P 8	P
 P 
P( %):>	 " 8	
  
# rB   rO   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   rO   r   rB   r:   <module>r~      sC    " 6 6 = 3 2 V V < <V6 V6rQ/ QrB   