
    Ng1                     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 )GoldenQueryAPIWrapperzWrapper 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      f/var/www/html/ai-engine/env/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6B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           %)NHSM(((:  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   