§
    šŠtjø  ã                   ó^  — d Z ddlmZ ddlmZmZmZmZmZ ddl	m
Z
mZ ddlmZmZ erddlmZ ddlmZ ddlmZ d	d
dœdededeee
ef                  deegef         fd„Zddedd
fd„Z	 	 	 d dee         dee         ded         dd
fd„Zd!dee         ddfd„Zd!dedee         ddfd„Zd
S )"zUtilities to init Vertex AI.é    )Úmetadata)ÚTYPE_CHECKINGÚAnyÚCallableÚOptionalÚUnion)ÚAsyncCallbackManagerForLLMRunÚCallbackManagerForLLMRun)ÚBaseLLMÚcreate_base_retry_decorator©Ú
ClientInfo)ÚCredentials©ÚImageé   N)Úmax_retriesÚrun_managerÚllmr   r   Úreturnc                óÖ   — ddl }|j        j        j        |j        j        j        |j        j        j        |j        j        j        |j        j        j        g}t          |||¬¦  «        }|S )z0Create a retry decorator for Vertex / Palm LLMs.r   N)Úerror_typesr   r   )	Úgoogle.api_coreÚapi_coreÚ
exceptionsÚResourceExhaustedÚServiceUnavailableÚAbortedÚDeadlineExceededÚGoogleAPIErrorr   )r   r   r   ÚgoogleÚerrorsÚ	decorators         úd/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/utilities/vertexai.pyÚcreate_retry_decoratorr%      su   € ð ÐÐÐð 	ŒÔ"Ô4ØŒÔ"Ô5ØŒÔ"Ô*ØŒÔ"Ô3ØŒÔ"Ô1ð€Fõ ,Ø¨Àðñ ô €Ið Ðó    ú1.38.0Úminimum_expected_versionc                 ó&   — t          d| › �¦  «        ‚)zóRaise ImportError related to Vertex SDK being not available.

    Args:
        minimum_expected_version: The lowest expected version of the SDK.
    Raises:
        ImportError: an ImportError that mentions a required version of the SDK.
    zePlease, install or upgrade the google-cloud-aiplatform library: pip install google-cloud-aiplatform>=)ÚImportError)r(   s    r$   Úraise_vertex_import_errorr+   *   s+   € õ ð	KØ0Hð	Kð 	Kñô ð r&   ÚprojectÚlocationÚcredentialsr   c                 ó~   — 	 ddl }n# t          $ r t          ¦   «          Y nw xY w|                     | ||¬¦  «         dS )a¯  Init Vertex AI.

    Args:
        project: The default GCP project to use when making Vertex API calls.
        location: The default location to use when making API calls.
        credentials: The default custom
            credentials to use when making API calls. If not provided credentials
            will be ascertained from the environment.

    Raises:
        ImportError: If importing vertexai SDK did not succeed.
    r   N)r,   r-   r.   )Úvertexair*   r+   Úinit)r,   r-   r.   r0   s       r$   Úinit_vertexair2   8   so   € ð"$ØˆˆˆˆøÝð $ð $ð $Ý!Ñ#Ô#Ð#Ð#Ð#ð$øøøð ‡M‚MØØØð ñ ô ð ð ð s   ‚ ‡"¡"Úmoduler   c                 ó´   — 	 ddl m} n"# t          $ r}t          d¦  «        |‚d}~ww xY wt          j        d¦  «        }| r|› d| › �n|} ||d|› �¬¦  «        S )	zØReturn a custom user agent header.

    Args:
        module (Optional[str]):
            Optional. The module for a custom user agent header.
    Returns:
        google.api_core.gapic_v1.client_info.ClientInfo
    r   r   zPCould not import ClientInfo. Please, install it with pip install google-api-coreNÚ	langchainú-z
langchain/)Úclient_library_versionÚ
user_agent)Ú$google.api_core.gapic_v1.client_infor   r*   r   Úversion)r3   r   ÚexcÚlangchain_versionr7   s        r$   Úget_client_infor=   U   s¶   € ðØCÐCÐCÐCÐCÐCÐCøÝð ð ð Ýð*ñ
ô 
ð ð	øøøøðøøøõ !Ô(¨Ñ5Ô5Ðà+1ÐHÐÐ'Ð'˜vÐ'Ð'Ð'Ð7Hð ð ˆ:Ø5Ø8Ð 6Ð8Ð8ðñ ô ð s   ‚	 ‰
(“#£(Úpathr   c           
      óÔ  — 	 ddl m} n# t          $ r t          d¦  «        ‚w xY wddlm} |                     |¬¦  «        }|                      d¦  «        }t          |                     |d         d 	                    |dd	…         ¦  «        ¬
¦  «        ¦  «        }t          |¦  «        dk    rt          d| › d�¦  «        ‚ |j        |d                              ¦   «         ¦  «        S )z(Load an image from Google Cloud Storage.r   )Ústoragez5Could not import google-cloud-storage python package.r   )r,   ú/é   é   N)Úprefixr   z"Found more than one candidate for ú!)Úgoogle.cloudr@   r*   Ú"vertexai.preview.generative_modelsr   ÚClientÚsplitÚlistÚ
list_blobsÚjoinÚlenÚ
ValueErrorÚ
from_bytesÚdownload_as_bytes)r>   r,   r@   r   Ú
gcs_clientÚpiecesÚblobss          r$   Úload_image_from_gcsrT   p   s  € ðSØ(Ð(Ð(Ð(Ð(Ð(Ð(øÝð Sð Sð SÝÐQÑRÔRÐRðSøøøà8Ð8Ð8Ð8Ð8Ð8à—’¨�Ñ0Ô0€JØ�ZŠZ˜‰_Œ_€FÝ�×&Ò& v¨a¤y¸¿ºÀ&ÈÈÈÄ*Ñ9MÔ9MÐ&ÑNÔNÑOÔO€EÝ
ˆ5�z„z�A‚~€~ÝÐE¸dÐEÐEÐEÑFÔFÐFØˆ5Ô˜E !œH×6Ò6Ñ8Ô8Ñ9Ô9Ð9s   ‚	 ‰#)r'   )NNN)N)Ú__doc__Ú	importlibr   Útypingr   r   r   r   r   Úlangchain_core.callbacksr	   r
   Ú#langchain_core.language_models.llmsr   r   r9   r   Úgoogle.auth.credentialsr   rG   r   Úintr%   Ústrr+   r2   r=   rT   © r&   r$   ú<module>r^      s  ðØ "Ð "à Ð Ð Ð Ð Ð Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @ðð ð ð ð ð ð ð ð UÐ TÐ TÐ TÐ TÐ TÐ TÐ Tàð 9Ø?Ð?Ð?Ð?Ð?Ð?Ø3Ð3Ð3Ð3Ð3Ð3Ø8Ð8Ð8Ð8Ð8Ð8ð ð 	ðð ð Ø	ðð ðð ØÐ+Ð-EÐEÔFôð	ð ˆsˆe�SˆjÔðð ð ð ð0ð ¸ð È4ð ð ð ð ð "Ø"Ø+/ðð Ø�cŒ]ðà�sŒmðð ˜-Ô(ðð 
ð	ð ð ð ð:ð ˜H SœMð °\ð ð ð ð ð6:ð :˜cð :¨H°S¬Mð :ÀWð :ð :ð :ð :ð :ð :r&   