§
    šŠtj¤  ã                   ó†   — d dl Z d dlmZmZmZmZmZmZ d dlm	Z	 d dl
mZmZ  e j        e¦  «        Z G d„ de¦  «        ZdS )é    N)ÚAnyÚCallableÚDictÚIteratorÚListÚOptional)ÚDocument)Ú	BaseModelÚmodel_validatorc                   óè   — e Zd ZU dZdZeed<   dZeed<   dZe	ed<   dZ
eeegef                  ed	<   eed
<    ed¬¦  «        ededefd„¦   «         ¦   «         Zdee         fd„Zdee         fd„ZdS )ÚTensorflowDatasetsav  Access to the TensorFlow Datasets.

    The Current implementation can work only with datasets that fit in a memory.

    `TensorFlow Datasets` is a collection of datasets ready to use, with TensorFlow
    or other Python ML frameworks, such as Jax. All datasets are exposed
    as `tf.data.Datasets`.
    To get started see the Guide: https://www.tensorflow.org/datasets/overview and
    the list of datasets: https://www.tensorflow.org/datasets/catalog/
                                               overview#all_datasets

    You have to provide the sample_to_document_function: a function that
       a sample from the dataset-specific format to the Document.

    Attributes:
        dataset_name: the name of the dataset to load
        split_name: the name of the split to load. Defaults to "train".
        load_max_docs: a limit to the number of loaded documents. Defaults to 100.
        sample_to_document_function: a function that converts a dataset sample
          to a Document

    Example:
        .. code-block:: python

            from langchain_community.utilities import TensorflowDatasets

            def mlqaen_example_to_document(example: dict) -> Document:
                return Document(
                    page_content=decode_to_str(example["context"]),
                    metadata={
                        "id": decode_to_str(example["id"]),
                        "title": decode_to_str(example["title"]),
                        "question": decode_to_str(example["question"]),
                        "answer": decode_to_str(example["answers"]["text"][0]),
                    },
                )

            tsds_client = TensorflowDatasets(
                    dataset_name="mlqa/en",
                    split_name="train",
                    load_max_docs=MAX_DOCS,
                    sample_to_document_function=mlqaen_example_to_document,
                )

    Ú Údataset_nameÚtrainÚ
split_nameéd   Úload_max_docsNÚsample_to_document_functionÚdatasetÚbefore)ÚmodeÚvaluesÚreturnc                 ó  — 	 ddl }n# t          $ r t          d¦  «        ‚w xY w	 ddl}n# t          $ r t          d¦  «        ‚w xY w|d         €t          d¦  «        ‚|                     |d         |d         ¬	¦  «        |d
<   |S )z7Validate that the python package exists in environment.r   Nz\Could not import tensorflow python package. Please install it with `pip install tensorflow`.znCould not import tensorflow_datasets python package. Please install it with `pip install tensorflow-datasets`.r   zmsample_to_document_function is None. Please provide a function that converts a dataset sample to  a Document.r   r   )Úsplitr   )Ú
tensorflowÚImportErrorÚtensorflow_datasetsÚ
ValueErrorÚload)Úclsr   r   r   s       úo/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/utilities/tensorflow_datasets.pyÚvalidate_environmentz'TensorflowDatasets.validate_environmentC   sì   € ð	ØÐÐÐÐøÝð 	ð 	ð 	ÝðCñô ð ð	øøøð
	Ø&Ð&Ð&Ð&Ð&øÝð 	ð 	ð 	ÝðLñô ð ð	øøøð
 Ð/Ô0Ð8Ýð ñô ð ð
 0×4Ò4Ø�>Ô"¨&°Ô*>ð 5ñ 
ô 
ˆˆyÑð ˆs   ‚ ‡!¥* ªAc                 óZ   ‡ — ˆ fd„‰ j                              ‰ j        ¦  «        D ¦   «         S )zYDownload a selected dataset lazily.

        Returns: an iterator of Documents.

        c              3   óP   •K  — | ] }‰j         ®	‰                      |¦  «        V — Œ!d S )N)r   )Ú.0ÚsÚselfs     €r"   ú	<genexpr>z/TensorflowDatasets.lazy_load.<locals>.<genexpr>g   sF   øè è € ð 
ð 
àØÔ/Ð;ð ×,Ò,¨QÑ/Ô/à;Ð;Ð;Ð;ð
ð 
ó    )r   Útaker   ©r(   s   `r"   Ú	lazy_loadzTensorflowDatasets.lazy_loada   sA   ø€ ð
ð 
ð 
ð 
à”\×&Ò& tÔ'9Ñ:Ô:ð
ñ 
ô 
ð 	
r*   c                 óD   — t          |                      ¦   «         ¦  «        S )zMDownload a selected dataset.

        Returns: a list of Documents.

        )Úlistr-   r,   s    r"   r    zTensorflowDatasets.loadm   s   € õ �D—N’NÑ$Ô$Ñ%Ô%Ð%r*   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚstrÚ__annotations__r   r   Úintr   r   r   r   r	   r   r   Úclassmethodr#   r   r-   r   r    © r*   r"   r   r   
   s  € € € € € € ð,ð ,ð\ €L�#ÐÐÑà€J�ÐÐÑà€M�3ÐÐÑàHLÐ ¨(°D°6¸8Ð3CÔ*DÔ!EÐLÐLÑLà€L€L�Là€_˜(Ð#Ñ#Ô#Øð¨$ð °3ð ð ð ñ „[ñ $Ô#ðð8

˜8 HÔ-ð 

ð 

ð 

ð 

ð&�d˜8”nð &ð &ð &ð &ð &ð &r*   r   )ÚloggingÚtypingr   r   r   r   r   r   Úlangchain_core.documentsr	   Úpydanticr
   r   Ú	getLoggerr0   Úloggerr   r8   r*   r"   ú<module>r?      s¸   ðØ €€€Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @à -Ð -Ð -Ð -Ð -Ð -Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /à	ˆÔ	˜8Ñ	$Ô	$€ði&ð i&ð i&ð i&ð i&˜ñ i&ô i&ð i&ð i&ð i&r*   