§
    šŠtj1  ã                   ór   — d Z ddlZddlmZmZmZ ddlZddlmZ ddl	m
Z
mZmZ dZdZ G d„ d	e
¦  «        ZdS )
zUtil that calls Golden.é    N)ÚAnyÚDictÚOptional©Úget_from_dict_or_env)Ú	BaseModelÚ
ConfigDictÚmodel_validatorzhttps://golden.comiˆ  c                   óš   — e Zd ZU dZdZee         ed<    ed¬¦  «        Z	 e
d¬¦  «        eded	efd
„¦   «         ¦   «         Zded	efd„ZdS )ÚGoldenQueryAPIWrapperzáWrapper for Golden.

    Docs for using:

    1. Go to https://golden.com and sign up for an account
    2. Get your API Key from https://golden.com/settings/api
    3. Save your API Key into GOLDEN_API_KEY env variable

    NÚgolden_api_keyÚforbid)ÚextraÚbefore)ÚmodeÚvaluesÚreturnc                 ó2   — t          |dd¦  «        }||d<   |S )z?Validate that api key and python package exists in environment.r   ÚGOLDEN_API_KEYr   )Úclsr   r   s      úh/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/utilities/golden_query.pyÚvalidate_environmentz*GoldenQueryAPIWrapper.validate_environment   s.   € õ .ØÐ$Ð&6ñ
ô 
ˆð $2ˆÐÑ àˆó    Úqueryc                 ó(  — d| j         pdi}t          j        t          › d�d|i|t          ¬¦  «        }|j        dk    r|j        S t          j        |j	        ¦  «        }|d         }t          j
        t          › d|› d�|t          ¬	¦  «        }|j        S )
zBRun query through Golden Query API and return the JSON raw result.ÚapikeyÚ z/api/v2/public/queries/Úprompt)ÚjsonÚheadersÚtimeoutéÉ   Úidz/results/?pageSize=10)r    r!   )r   ÚrequestsÚpostÚGOLDEN_BASE_URLÚGOLDEN_TIMEOUTÚstatus_codeÚtextr   ÚloadsÚcontentÚget)Úselfr   r    Úresponser+   Úquery_ids         r   ÚrunzGoldenQueryAPIWrapper.run*   s¿   € ð ˜TÔ0Ð6°BÐ7ˆå”=ÝÐ7Ð7Ð7Ø˜EÐ"ØÝ"ð	
ñ 
ô 
ˆð Ô 3Ò&Ð&Ø”=Ð å”*˜XÔ-Ñ.Ô.ˆØ˜4”=ˆå”<å"ð ð ¸8ð ð ð ð Ý"ð
ñ 
ô 
ˆð Œ}Ðr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   ÚstrÚ__annotations__r	   Úmodel_configr
   Úclassmethodr   r   r   r0   © r   r   r   r      s·   € € € € € € ðð ð %)€N�H˜S”MÐ(Ð(Ñ(à�:Øðñ ô €Lð €_˜(Ð#Ñ#Ô#Øð¨$ð °3ð ð ð ñ „[ñ $Ô#ðð˜ð  ð ð ð ð ð ð r   r   )r4   r   Útypingr   r   r   r$   Úlangchain_core.utilsr   Úpydanticr   r	   r
   r&   r'   r   r9   r   r   ú<module>r=      s©   ðØ Ð à €€€Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &à €€€Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;à&€Ø€ð5ð 5ð 5ð 5ð 5˜Iñ 5ô 5ð 5ð 5ð 5r   