§
    
¼i¹  ã                   ón   — d Z ddlmZmZmZmZ ddlZddlmZm	Z	 ddl
mZmZmZmZ  G d„ de¦  «        ZdS )z#Util that calls Google Lens Search.é    )ÚAnyÚDictÚOptionalÚcastN©Úconvert_to_secret_strÚget_from_dict_or_env)Ú	BaseModelÚ
ConfigDictÚ	SecretStrÚmodel_validatorc                   ó¨   — e Zd ZU dZdZeed<   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 )ÚGoogleLensAPIWrapperaV  Wrapper for SerpApi's Google Lens API

    You can create SerpApi.com key by signing up at: https://serpapi.com/users/sign_up.

    The wrapper uses the SerpApi.com python package:
    https://serpapi.com/integrations/python

    To use, you should have the environment variable ``SERPAPI_API_KEY``
    set with your API key, or pass `serp_api_key` as a named parameter
    to the constructor.

     Example:
        .. code-block:: python

        from langchain_community.utilities import GoogleLensAPIWrapper
        google_lens = GoogleLensAPIWrapper()
        google_lens.run('langchain')
    NÚserp_search_engineÚserp_api_keyÚforbid)ÚextraÚbefore)ÚmodeÚvaluesÚreturnc                 óH   — t          t          |dd¦  «        ¦  «        |d<   |S )z?Validate that api key and python package exists in environment.r   ÚSERPAPI_API_KEYr   )Úclsr   s     úC:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\langchain_community/utilities/google_lens.pyÚvalidate_environmentz)GoogleLensAPIWrapper.validate_environment%   s/   € õ "7Ý  ¨Ð9JÑKÔKñ"
ô "
ˆˆ~Ñð ˆó    Úqueryc                 óì  — t          t          | j        ¦  «        }d|                     ¦   «         |dœ}d|d         › d|d         › d|d         › }t	          j        |¦  «        }|j        d	k    rd
S |                     ¦   «         }|d         d         dk    rd
S d}d|v rNt          |d         ¦  «        dk    r5|d         d         }|d|d         › d|d         › dz  }|d|d         › dz  }|dz  }|d         D ]8}	|d|	d         › dz  }|d|	d         › d|	d         › dz  }|d |	d!         › dz  }Œ9d"|v r|d#d$|d"         d         › dz   z  }t          |¦  «         |g}
d 
                    |
¦  «        S )%z,Run query through Google Trends with SerpapiÚgoogle_lens)ÚengineÚapi_keyÚurlz"https://serpapi.com/search?engine=r!   z	&api_key=r"   z&url=r#   éÈ   zGoogle Lens search failedÚsearch_metadataÚstatusÚSuccessÚ Úknowledge_graphr   zSubject:Útitleú(Úsubtitlez)
zLink to subject:Úlinkz

zRelated Images:

Úvisual_matcheszTitle: ú
zSource(Úsourcez): zImage: Ú	thumbnailÚreverse_image_searchzReverse Image SearchzLink: )r   r   r   Úget_secret_valueÚrequestsÚgetÚstatus_codeÚjsonÚlenÚprintÚjoin)Úselfr   Úserpapi_api_keyÚparamsÚqueryURLÚresponseÚresponseValueÚxsÚsubjectÚimageÚdocss              r   ÚrunzGoogleLensAPIWrapper.run/   s  € åy¨$Ô*;Ñ<Ô<ˆð $Ø&×7Ò7Ñ9Ô9Øð
ð 
ˆð
 {¸¸xÔ8HÐzÐzÐSYÐZcÔSdÐzÐzÐkqÐrwÔkxÐzÐzˆÝ”< Ñ)Ô)ˆàÔ 3Ò&Ð&Ø.Ð.à Ÿš™œˆàÐ*Ô+¨HÔ5¸ÒBÐBØ.Ð.àˆà Ð.Ð.ÝMÐ"3Ô4Ñ5Ô5¸Ò9Ð9à#Ð$5Ô6°qÔ9ˆGØÐH˜W WÔ-ÐHÐH°¸
Ô0CÐHÐHÐHÑHˆBØÐ: W¨V¤_Ð:Ð:Ð:Ñ:ˆBØ
Ð#Ñ#ˆØ"Ð#3Ô4ð 	5ð 	5ˆEØÐ.˜E 'œNÐ.Ð.Ð.Ñ.ˆBØÐA˜E (œOÐAÐA°°f´ÐAÐAÐAÑAˆBØÐ4˜E +Ô.Ð4Ð4Ð4Ñ4ˆBˆBØ! ]Ð2Ð2ØØ&ØL˜=Ð)?Ô@ÀÔHÐLÐLÐLñMñˆBõ 	ˆb‰	Œ	ˆ	àˆtˆà{Š{˜4Ñ Ô Ð r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__annotations__r   r   r   r   Úmodel_configr   Úclassmethodr   r   ÚstrrE   © r   r   r   r   
   sÉ   € € € € € € ðð ð& #Ð˜Ð"Ð"Ñ"Ø(,€L(˜9Ô%Ð,Ð,Ñ,à:Øðñ ô €Lð €_˜(Ð#Ñ#Ô#Øð¨$ð °3ð ð ð ñ „[ñ $Ô#ðð*!˜ð *! ð *!ð *!ð *!ð *!ð *!ð *!r   r   )rI   Útypingr   r   r   r   r4   Úlangchain_core.utilsr   r	   Úpydanticr
   r   r   r   r   rN   r   r   ú<module>rR      s²   ðØ )Ð )à ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,à €€€Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FðO!ð O!ð O!ð O!ð O!˜9ñ O!ô O!ð O!ð O!ð O!r   