§
    šŠtjq  ã                   óÆ   — d dl Z d dlZd dlmZ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 d dlmZ  e j        e¦  «        Z G d„ d	e¦  «        ZdS )
é    N)ÚAnyÚDictÚListÚMappingÚOptional)ÚCallbackManagerForLLMRun)ÚLLM)Úconvert_to_secret_strÚget_from_dict_or_envÚpre_init)Ú
ConfigDictÚFieldÚ	SecretStrÚmodel_validator)Úenforce_stop_tokensc                   óŒ  — e Zd ZU dZdZeed<   	  ee¬¦  «        Z	e
eef         ed<   	 dZee         ed<    ed¬	¦  «        Z ed
¬¦  «        ede
eef         defd„¦   «         ¦   «         Zede
de
fd„¦   «         Zedeeef         fd„¦   «         Zedefd„¦   «         Z	 	 ddedeee                  dee         dedef
d„ZdS )ÚStochasticAIa2  StochasticAI large language models.

    To use, you should have the environment variable ``STOCHASTICAI_API_KEY``
    set with your API key.

    Example:
        .. code-block:: python

            from langchain_community.llms import StochasticAI
            stochasticai = StochasticAI(api_url="")
    Ú Úapi_url)Údefault_factoryÚmodel_kwargsNÚstochasticai_api_keyÚforbid)ÚextraÚbefore)ÚmodeÚvaluesÚreturnc                 ól  — t          t          | j                             ¦   «         ¦  «        ¦  «        }|                     di ¦  «        }t          |¦  «        D ]U}||vrO||v rt          d|› d�¦  «        ‚t                               |› d|› d�¦  «         |                     |¦  «        ||<   ŒV||d<   |S )z>Build extra kwargs from additional params that were passed in.r   zFound z supplied twice.zJ was transferred to model_kwargs.
                    Please confirm that z is what you intended.)	ÚsetÚlistÚmodel_fieldsÚkeysÚgetÚ
ValueErrorÚloggerÚwarningÚpop)Úclsr   Úall_required_field_namesr   Ú
field_names        úc/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/llms/stochasticai.pyÚbuild_extrazStochasticAI.build_extra*   sä   € õ $'¥t¨CÔ,<×,AÒ,AÑ,CÔ,CÑ'DÔ'DÑ#EÔ#EÐ à—
’
˜>¨2Ñ.Ô.ˆÝ˜v™,œ,ð 	;ð 	;ˆJØÐ!9Ð9Ð9Ø Ð&Ð&Ý$Ð%J¨jÐ%JÐ%JÐ%JÑKÔKÐKÝ—’Ø#ð Nð NØ)3ðNð Nð Nñô ð ð %+§J¢J¨zÑ$:Ô$:��jÑ!øØ!&ˆˆ~ÑØˆó    c                 óL   — t          t          |dd¦  «        ¦  «        }||d<   |S )z,Validate that api key exists in environment.r   ÚSTOCHASTICAI_API_KEY)r
   r   )r)   r   r   s      r,   Úvalidate_environmentz!StochasticAI.validate_environment=   s7   € õ  5Ý  Ð)?ÐAWÑXÔXñ 
ô  
Ðð *>ˆÐ%Ñ&Øˆr.   c                 ó*   — i d| j         i¥d| j        i¥S )zGet the identifying parameters.Úendpoint_urlr   )r   r   ©Úselfs    r,   Ú_identifying_paramsz StochasticAI._identifying_paramsF   s+   € ð
Ø˜tœ|Ð,ð
à˜tÔ0Ð1ð
ð 	
r.   c                 ó   — dS )zReturn type of llm.Ústochasticai© r4   s    r,   Ú	_llm_typezStochasticAI._llm_typeN   s	   € ð ˆ~r.   ÚpromptÚstopÚrun_managerÚkwargsc                 ó\  — | j         pi }i |¥|¥}t          j        | j        ||dœ| j                             ¦   «         › dddœ¬¦  «        }|                     ¦   «          |                     ¦   «         }d}|s›t          j        |d         d         | j                             ¦   «         › dddœ¬¦  «        }	|	                     ¦   «          |	                     ¦   «         d         }
|
                     d	¦  «        }|d
u}t          j
        d¦  «         |¯›|d         }|�t          ||¦  «        }|S )at  Call out to StochasticAI's complete endpoint.

        Args:
            prompt: The prompt to pass into the model.
            stop: Optional list of stop words to use when generating.

        Returns:
            The string generated by the model.

        Example:
            .. code-block:: python

                response = StochasticAI("Tell me a joke.")
        )r;   Úparamszapplication/json)ÚapiKeyÚAcceptzContent-Type)ÚurlÚjsonÚheadersFÚdataÚresponseUrl)rC   rE   Ú
completionNg      à?r   )r   ÚrequestsÚpostr   r   Úget_secret_valueÚraise_for_statusrD   r$   ÚtimeÚsleepr   )r5   r;   r<   r=   r>   r@   Úresponse_postÚresponse_post_jsonÚ	completedÚresponse_getÚresponse_get_jsonÚtexts               r,   Ú_callzStochasticAI._callS   sl  € ð* Ô"Ð( bˆØ%�FÐ%˜fÐ%ˆÝ œØ”Ø"¨fÐ5Ð5à!Ô6×GÒGÑIÔIÐKØ,Ø 2ðð ð
ñ 
ô 
ˆð 	×&Ò&Ñ(Ô(Ð(Ø*×/Ò/Ñ1Ô1ÐØˆ	Øð 	Ý#œ<Ø& vÔ.¨}Ô=à!%Ô!:×!KÒ!KÑ!MÔ!MÐOØ0Ø$6ðð ðñ ô ˆLð ×)Ò)Ñ+Ô+Ð+Ø ,× 1Ò 1Ñ 3Ô 3°FÔ ;ÐØ$×(Ò(¨Ñ6Ô6ˆDØ DÐ(ˆIÝŒJ�s‰OŒOˆOð ð 	ð �AŒwˆØÐõ ' t¨TÑ2Ô2ˆDØˆr.   )NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚstrÚ__annotations__r   Údictr   r   r   r   r   r   r   Úmodel_configr   Úclassmethodr-   r   r1   Úpropertyr   r6   r:   r   r   rU   r9   r.   r,   r   r      sÃ  € € € € € € ð
ð 
ð €GˆSÐÐÑØà#( 5¸Ð#>Ñ#>Ô#>€L�$�s˜C�x”.Ð>Ð>Ñ>ðð 15Ð˜( 9Ô-Ð4Ð4Ñ4à�:Øðñ ô €Lð €_˜(Ð#Ñ#Ô#Øð  c¨3 h¤ð °Cð ð ð ñ „[ñ $Ô#ðð" ð¨$ð °4ð ð ð ñ „Xðð ð
 W¨S°#¨XÔ%6ð 
ð 
ð 
ñ „Xð
ð ð˜3ð ð ð ñ „Xðð %)Ø:>ð	6ð 6àð6ð �t˜C”yÔ!ð6ð Ð6Ô7ð	6ð
 ð6ð 
ð6ð 6ð 6ð 6ð 6ð 6r.   r   )ÚloggingrM   Útypingr   r   r   r   r   rI   Úlangchain_core.callbacksr   Ú#langchain_core.language_models.llmsr	   Úlangchain_core.utilsr
   r   r   Úpydanticr   r   r   r   Úlangchain_community.llms.utilsr   Ú	getLoggerrV   r&   r   r9   r.   r,   ú<module>rh      s  ðØ €€€Ø €€€Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5à €€€Ø =Ð =Ð =Ð =Ð =Ð =Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VØ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ Bà >Ð >Ð >Ð >Ð >Ð >à	ˆÔ	˜8Ñ	$Ô	$€ðyð yð yð yð y�3ñ yô yð yð yð yr.   