§
    šŠtjö  ã                   óª   — 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dS )	é    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                   óV  — 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&dS )%Ú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          | ¦  «        }|                     di ¦  «        }t          |¦  «        D ]Y}||vrS||v rt          d|› d�¦  «        ‚t                               d|› d|› d|› d�¦  «         |                     |¦  «        ||<   ŒZ||d<   t          t          |dd	¦  «        ¦  «        }||d<   	 d
dl	}| 
                    ¦   «         |_        d|_        |j        |d<   n# t          $ r t          d¦  «        ‚w xY w|S )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          ú^/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/llms/gooseai.pyÚbuild_extrazGooseAI.build_extraI   sz  € õ $<¸CÑ#@Ô#@Ð à—
’
˜>¨2Ñ.Ô.ˆÝ˜v™,œ,ð 		;ð 		;ˆJØÐ!9Ð9Ð9Ø Ð&Ð&Ý$Ð%J¨jÐ%JÐ%JÐ%JÑKÔKÐKÝ—’ðN *ð Nð NØðNð Nà)3ðNð Nð Nñô ð ð
 %+§J¢J¨zÑ$:Ô$:��jÑ!øØ!&ˆˆ~Ñå/Ý  Ð):Ð<MÑNÔNñ
ô 
ˆð %4ˆÐ Ñ!ð
	ØˆMˆMˆMà,×=Ò=Ñ?Ô?ˆFŒNØ7ˆFŒOØ%Ô0ˆF�8ÑÐøÝð 	ð 	ð 	Ýð?ñô ð ð	øøøð
 ˆs   Â8.C' Ã'D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   sP   € ð  Ô+Øœ/Ø”ZØœ/Ø!%Ô!7Ø $Ô 5Ø”Øœ/ð	
ð 	
ˆð 6�-Ð5 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ÐJÐJr?   c                 ó   — dS )zReturn type of llm.Úgooseai© rA   s    r9   Ú	_llm_typezGooseAI._llm_type�   s	   € ð ˆyr?   Ú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.NrH   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ÐVØ!ˆF�6‰Nà%�FÐ%˜fÐ%ˆà%�4”;Ô%ÐV¨T¬_ÀVÐVÐ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€J�JØ;à#( 5¸Ð#>Ñ#>Ô#>€L�$�s˜C�x”.Ð>Ð>Ñ>ØVà-2¨UÀ4Ð-HÑ-HÔ-H€J�˜˜c 5˜jÔ)Ô*ÐHÐHÑHØDà+/€O�X˜iÔ(Ð/Ð/Ñ/à�:Øðñ ô €Lð €_˜(Ð#Ñ#Ô#Øð   c¨3 h¤ð  °Cð  ð  ð  ñ „[ñ $Ô#ð ðD ð6  c¨3 h¤ð 6ð 6ð 6ñ „Xð6ð ðK W¨S°#¨XÔ%6ð Kð Kð Kñ „XðKð ð˜3ð ð ð ñ „Xðð %)Ø:>ð	ð àðð �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      s  ðØ €€€Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5à =Ð =Ð =Ð =Ð =Ð =Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3ðð ð ð ð ð ð ð ð ð ð
 CÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ BÐ Bà	ˆÔ	˜8Ñ	$Ô	$€ðHð Hð Hð Hð Hˆcñ Hô Hð Hð Hð Hr?   