
    dh                     R    S r SSKJrJrJr  SSKJr  SSKJrJ	r	J
r
   " S S\5      rg)zUtil that calls Dataherald.    )AnyDictOptional)get_from_dict_or_env)	BaseModel
ConfigDictmodel_validatorc                       \ rS rSr% SrSr\\S'   \\S'   Sr	\
\   \S'   \" SS9r\" S	S
9\S\S\4S j5       5       rS\S\4S jrSrg)DataheraldAPIWrapper	   zWrapper for Dataherald.

Docs for using:

1. Go to dataherald and sign up
2. Create an API key
3. Save your API key into DATAHERALD_API_KEY env variable
4. pip install dataherald

Ndataherald_clientdb_connection_iddataherald_api_keyforbid)extrabefore)modevaluesreturnc                     [        USS5      nX!S'    SSKnUR                  US9nXAS'   U$ ! [         a    [        S5      ef = f)z?Validate that api key and python package exists in environment.r   DATAHERALD_API_KEYr   NzLdataherald is not installed. Please install it with `pip install dataherald`)api_keyr   )r   
dataheraldImportError
Dataherald)clsr   r   r   clients        `/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/utilities/dataherald.pyvalidate_environment)DataheraldAPIWrapper.validate_environment   ss     2(*>
 (:#$	 &&/A&B&,"#  	B 	s	   , Apromptc                     SSK Jn  U" XR                  S9nU R                  R                  R                  US9n UR                  nU(       d  gSU 3$ ! [         a     gf = f)z9Generate a sql query through Dataherald and parse result.r   )Prompt)textr   )r!   z	No answerzAnswer: z#Dataherald wasn't able to answer it)-dataherald.types.sql_generation_create_paramsr#   r   r   sql_generationscreatesqlStopIteration)selfr!   r#   
prompt_objresanswers         r   runDataheraldAPIWrapper.run4   sg    H:O:OP
$$44;;:;N		9WWF"!&** 	98	9s   A A 
A! A! )__name__
__module____qualname____firstlineno____doc__r   r   __annotations__strr   r   r   model_configr	   classmethodr   r   r.   __static_attributes__r0       r   r   r   	   sx    	 "s!(,,L (#$ 3   $*9# 9# 9r;   r   N)r5   typingr   r   r   langchain_core.utilsr   pydanticr   r   r	   r   r0   r;   r   <module>r?      s#    ! & & 5 ; ;;99 ;9r;   