§
    æ˜ºhY  ã                  óv   — d dl mZ d dlmZmZmZ d dlmZ d dlm	Z	 d dl
mZ erd dlmZ  G d„ de	¦  «        Zd	S )
é    )Úannotations)ÚTYPE_CHECKINGÚListÚOptional)ÚDocument)Ú
BaseLoader)Úget_client_info)ÚCredentialsc                  ó,   — e Zd ZdZ	 	 	 	 ddd„Zdd„ZdS )ÚBigQueryLoaderah  Load from the Google Cloud Platform `BigQuery`.

    Each document represents one row of the result. The `page_content_columns`
    are written into the `page_content` of the document. The `metadata_columns`
    are written into the `metadata` of the document. By default, all columns
    are written into the `page_content` and none into the `metadata`.

    NÚqueryÚstrÚprojectúOptional[str]Úpage_content_columnsúOptional[List[str]]Úmetadata_columnsÚcredentialsúOptional[Credentials]c                óL   — || _         || _        || _        || _        || _        dS )a  Initialize BigQuery document loader.

        Args:
            query: The query to run in BigQuery.
            project: Optional. The project to run the query in.
            page_content_columns: Optional. The columns to write into the `page_content`
                of the document.
            metadata_columns: Optional. The columns to write into the `metadata` of the
                document.
            credentials : google.auth.credentials.Credentials, optional
              Credentials for accessing Google APIs. Use this parameter to override
                default credentials, such as to use Compute Engine
                (`google.auth.compute_engine.Credentials`) or Service Account
                (`google.oauth2.service_account.Credentials`) credentials directly.
        N)r   r   r   r   r   )Úselfr   r   r   r   r   s         úu/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/langchain_community/document_loaders/bigquery.pyÚ__init__zBigQueryLoader.__init__   s0   € ð. ˆŒ
ØˆŒØ$8ˆÔ!Ø 0ˆÔØ&ˆÔÐÐó    ÚreturnúList[Document]c                ó�  ‡‡— 	 ddl m} n"# t          $ r}t          d¦  «        |‚d }~ww xY w|                     | j        | j        t          d¬¦  «        ¬¦  «        }|j        sd}t          |¦  «        ‚|                     | j        ¦  «         	                    ¦   «         }g }| j
        Š| j        Š‰€d„ |j        D ¦   «         Š‰€g Š|D ]{}d	                     ˆfd
„|                     ¦   «         D ¦   «         ¦  «        }ˆfd„|                     ¦   «         D ¦   «         }	t          ||	¬¦  «        }
|                     |
¦  «         Œ||S )Nr   )ÚbigqueryzrCould not import google-cloud-bigquery python package. Please install it with `pip install google-cloud-bigquery`.r   )Úmodule)r   r   Úclient_infoz±GCP project for Big Query is not set! Either provide a `project` argument during BigQueryLoader instantiation, or set a default project with `gcloud config set project` command.c                ó   — g | ]	}|j         ‘Œ
S © )Úname)Ú.0Úcolumns     r   ú
<listcomp>z'BigQueryLoader.load.<locals>.<listcomp>R   s   € Ð#RÐ#RÐ#R°F F¤KÐ#RÐ#RÐ#Rr   ú
c              3  ó4   •K  — | ]\  }}|‰v ¯	|› d |› �V — ŒdS )z: Nr"   )r$   ÚkÚvr   s      €r   ú	<genexpr>z&BigQueryLoader.load.<locals>.<genexpr>W   sE   øè è € ð %ð %Ù $  1°qÐ<PÐ7PÐ7P�1��˜��Ð7PÐ7PÐ7PÐ7Pð%ð %r   c                ó$   •— i | ]\  }}|‰v ¯	||“ŒS r"   r"   )r$   r)   r*   r   s      €r   ú
<dictcomp>z'BigQueryLoader.load.<locals>.<dictcomp>Z   s*   ø€ ÐNÐNÐN¡  A¸Ð=MÐ8MÐ8M˜˜1Ð8MÐ8MÐ8Mr   )Úpage_contentÚmetadata)Úgoogle.cloudr   ÚImportErrorÚClientr   r   r	   Ú
ValueErrorr   Úresultr   r   ÚschemaÚjoinÚitemsr   Úappend)r   r   ÚexÚ	bq_clientÚ
error_descÚquery_resultÚdocsÚrowr.   r/   Údocr   r   s              @@r   ÚloadzBigQueryLoader.load5   s³  øø€ ð	Ø-Ð-Ð-Ð-Ð-Ð-Ð-øÝð 	ð 	ð 	ÝðNñô ð ðøøøøð	øøøð —O’OØÔ(Ø”LÝ'¨zÐ:Ñ:Ô:ð $ñ 
ô 
ˆ	ð
 Ô ð 	)ðð õ ˜ZÑ(Ô(Ð(Ø —’ t¤zÑ2Ô2×9Ò9Ñ;Ô;ˆØ!ˆà#Ô8ÐØÔ0ÐàÐ'Ø#RÐ#R¸lÔ>QÐ#RÑ#RÔ#RÐ ØÐ#Ø!Ðàð 	ð 	ˆCØŸ9š9ð %ð %ð %ð %Ø(+¯	ª	©¬ð%ñ %ô %ñ ô ˆLð OÐNÐNÐN¨¯ª©¬ÐNÑNÔNˆHÝ¨¸xÐHÑHÔHˆCØ�KŠK˜ÑÔÐÐàˆs   „ ‹
*•%¥*)NNNN)
r   r   r   r   r   r   r   r   r   r   )r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r@   r"   r   r   r   r      sY   € € € € € ðð ð "&Ø48Ø04Ø-1ð'ð 'ð 'ð 'ð 'ð:)ð )ð )ð )ð )ð )r   r   N)Ú
__future__r   Útypingr   r   r   Úlangchain_core.documentsr   Ú)langchain_community.document_loaders.baser   Ú&langchain_community.utilities.vertexair	   Úgoogle.auth.credentialsr
   r   r"   r   r   ú<module>rK      sÃ   ðØ "Ð "Ð "Ð "Ð "Ð "à 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0à -Ð -Ð -Ð -Ð -Ð -à @Ð @Ð @Ð @Ð @Ð @Ø BÐ BÐ BÐ BÐ BÐ Bàð 4Ø3Ð3Ð3Ð3Ð3Ð3ðPð Pð Pð Pð P�Zñ Pô Pð Pð Pð Pr   