Ë
    µŒjö  ã                   ó¦   — d dl 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mZmZ d dlmZmZmZmZ  e j(                  e«      Z G d„ de
«      Zy)	é    N)ÚAnyÚDictÚListÚMappingÚOptional)ÚCallbackManagerForLLMRun)ÚLLM)Úconvert_to_secret_strÚget_from_dict_or_envÚget_pydantic_field_names)Ú
ConfigDictÚFieldÚ	SecretStrÚmodel_validatorc                   óâ  — e Zd ZU dZdZeed<   dZeed<   	 dZ	e
ed<   	 dZeed	<   	 d
Ze
ed<   	 d
Zeed<   	 dZe
ed<   	 dZe
ed<   	 d
Zeed<   	  ee¬«      Zeeef   ed<   	  ee¬«      Ze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eef   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&y)%ÚGooseAIaá  GooseAI large language models.

    To use, you should have the ``openai`` python package installed, and the
    environment variable ``GOOSEAI_API_KEY`` set with your API key.

    Any parameters that are valid to be passed to the openai.create call can be passed
    in, even if not explicitly saved on this class.

    Example:
        .. code-block:: python

            from langchain_community.llms import GooseAI
            gooseai = GooseAI(model_name="gpt-neo-20b")

    NÚclientzgpt-neo-20bÚ
model_namegffffffæ?Útemperatureé   Ú
max_tokensé   Útop_pÚ
min_tokensr   Úfrequency_penaltyÚpresence_penaltyÚn)Údefault_factoryÚmodel_kwargsÚ
logit_biasÚgooseai_api_keyÚignore)ÚextraÚbefore)ÚmodeÚvaluesÚreturnc           
      óÆ  — t        | «      }|j                  di «      }t        |«      D ]M  }||vsŒ||v rt        d|› d�«      ‚t        j                  d|› d|› d|› d�«       |j                  |«      ||<   ŒO ||d<   t        t        |dd	«      «      }||d<   	 d
dl	}|j                  «       |_        d|_        |j                  |d<   |S # t        $ r t        d«      ‚w xY w)z>Build extra kwargs from additional params that were passed in.r   zFound z supplied twice.z	WARNING! z/ is not default parameter.
                    zJ was transferred to model_kwargs.
                    Please confirm that z is what you intended.r!   ÚGOOSEAI_API_KEYr   Nzhttps://api.goose.ai/v1r   zTCould not import openai python package. Please install it with `pip install openai`.)r   ÚgetÚlistÚ
ValueErrorÚloggerÚwarningÚpopr
   r   ÚopenaiÚget_secret_valueÚapi_keyÚapi_baseÚ
CompletionÚImportError)Úclsr&   Úall_required_field_namesr#   Ú
field_namer!   r0   s          új/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/langchain_community/llms/gooseai.pyÚbuild_extrazGooseAI.build_extraI   s"  € ô $<¸CÓ#@Ð à—
‘
˜>¨2Ó.ˆÜ˜vž,ˆJØÐ!9Ò9Ø Ñ&Ü$ v¨j¨\Ð9IÐ%JÓKÐKÜ—‘Ø! * ð .Ø�Lð !)Ø)3¨Ð4JðNôð
 %+§J¡J¨zÓ$:��jÒ!ð 'ð "'ˆˆ~Ñä/Ü  Ð):Ð<MÓNó
ˆð %4ˆÐ Ñ!ð
	Ûà,×=Ñ=Ó?ˆFŒNØ7ˆFŒOØ%×0Ñ0ˆF�8Ñð ˆøô ò 	Üð?óð ð	ús   Â/C ÃC c           	      óØ   — | j                   | j                  | j                  | j                  | j                  | j
                  | j                  | j                  dœ}i |¥| j                  ¥S )z3Get the default parameters for calling GooseAI API.)r   r   r   r   r   r   r   r    )	r   r   r   r   r   r   r   r    r   )ÚselfÚnormal_paramss     r9   Ú_default_paramszGooseAI._default_paramsm   sa   € ð  ×+Ñ+ØŸ/™/Ø—Z‘ZØŸ/™/Ø!%×!7Ñ!7Ø $× 5Ñ 5Ø—‘ØŸ/™/ñ	
ˆð 6�-Ð5 4×#4Ñ#4Ð5Ð5ó    c                 ó:   — i d| j                   i¥| j                  ¥S )zGet the identifying parameters.r   )r   r>   ©r<   s    r9   Ú_identifying_paramszGooseAI._identifying_params|   s$   € ð K�< §¡Ð1ÐJ°T×5IÑ5IÐJÐJr?   c                  ó   — y)zReturn type of llm.Úgooseai© rA   s    r9   Ú	_llm_typezGooseAI._llm_type�   s   € ð r?   ÚpromptÚstopÚrun_managerÚkwargsc                 óÚ   — | j                   }|�d|v rt        d«      ‚||d<   i |¥|¥} | j                  j                  d| j                  |dœ|¤Ž}|j
                  d   j                  }|S )zCall the GooseAI API.rH   z2`stop` found in both the input and default params.)ÚenginerG   r   rE   )r>   r,   r   Úcreater   ÚchoicesÚtext)r<   rG   rH   rI   rJ   ÚparamsÚresponserO   s           r9   Ú_callzGooseAI._call†   s€   € ð ×%Ñ%ˆØÐØ˜ÑÜ Ð!UÓVÐVØ!ˆF�6‰Nà%�FÐ%˜fÐ%ˆà%�4—;‘;×%Ñ%ÐV¨T¯_©_ÀVÑVÈvÑVˆØ×Ñ Ñ"×'Ñ'ˆØˆr?   )NN)'Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__annotations__r   Ústrr   Úfloatr   Úintr   r   r   r   r   r   Údictr   r   r    r   r!   r   r   Úmodel_configr   Úclassmethodr:   Úpropertyr>   r   rB   rF   r   r   rR   rE   r?   r9   r   r      s¿  … ñð  €FˆCÓà#€J�Ó#Øà€K�ÓØ*à€J�Óð(ð €Eˆ5ÓØDà€J�ÓØEà Ð�uÓ Ø;àÐ�eÓØ$à€A€sƒJØ;á#(¸Ô#>€L�$�s˜C�x‘.Ó>ØVá-2À4Ô-H€J�˜˜c 5˜jÑ)Ñ*ÓHØDà+/€O�X˜iÑ(Ó/áØô€Lñ ˜(Ô#Øð   c¨3 h¡ð  °Cò  ó ó $ð ðD ð6  c¨3 h¡ò 6ó ð6ð ðK W¨S°#¨XÑ%6ò Kó ðKð ð˜3ò ó ðð %)Ø:>ñ	àðð �t˜C‘yÑ!ðð Ð6Ñ7ð	ð
 ðð 
ôr?   r   )ÚloggingÚtypingr   r   r   r   r   Úlangchain_core.callbacksr   Ú#langchain_core.language_models.llmsr	   Úlangchain_core.utilsr
   r   r   Úpydanticr   r   r   r   Ú	getLoggerrS   r-   r   rE   r?   r9   Ú<module>rf      sG   ðÛ ß 5Õ 5å =Ý 3÷ñ ÷
 CÓ Bà	ˆ×	Ñ	˜8Ó	$€ôHˆcõ Hr?   