§
    é˜ºh  ã                  ó‚   — d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z
  G d„ dej        ¦  «        Z G d	„ d
¦  «        ZdS )z=Maintains set of LLM models that can be instantiated by name.é    )ÚannotationsN)ÚCallable)Ú
text_model)Úmodelc                  ó   — e Zd ZdZdZdS )Ú	ModelNameÚechoÚtextN)Ú__name__Ú
__module__Ú__qualname__Ú
ECHO_MODELÚ
TEXT_MODEL© ó    ús/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/google/generativeai/notebook/model_registry.pyr   r      s   € € € € € Ø€JØ€J€J€Jr   r   c                  ó.   — e Zd ZdZej        Zd„ Zd	d„ZdS )
ÚModelRegistryz-Registry that instantiates and caches models.c                óz   — i | _         t          j        t          j        t          j        t          j        i| _        d S )N)	Ú_model_cacher   r   Ú	model_libÚ	EchoModelr   r   Ú	TextModelÚ_model_constructors)Úselfs    r   Ú__init__zModelRegistry.__init__#   s1   € ØFHˆÔåÔ ¥)Ô"5ÝÔ ¥*Ô"6ð\
ˆÔ Ð Ð r   Ú
model_namer   Úreturnúmodel_lib.AbstractModelc                óh   — || j         vr | j        |         ¦   «         | j         |<   | j         |         S )a  Given `model_name`, return the corresponding Model instance.

        Model instances are cached and reused for the same `model_name`.

        Args:
          model_name: The name of the model.

        Returns:
          The corresponding model instance for `model_name`.
        )r   r   )r   r   s     r   Ú	get_modelzModelRegistry.get_model*   s=   € ð ˜TÔ.Ð.Ð.Ø,P¨DÔ,DÀZÔ,PÑ,RÔ,RˆDÔ˜jÑ)ØÔ  Ô,Ð,r   N)r   r   r   r   )	r   r   r   Ú__doc__r   r   ÚDEFAULT_MODELr   r!   r   r   r   r   r      sE   € € € € € Ø7Ð7àÔ(€Mð
ð 
ð 
ð-ð -ð -ð -ð -ð -r   r   )r"   Ú
__future__r   ÚenumÚtypingr   Úgoogle.generativeai.notebookr   Ú google.generativeai.notebook.libr   r   ÚEnumr   r   r   r   r   ú<module>r*      s½   ðð DÐ CØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?ðð ð ð ð �”	ñ ô ð ð
-ð -ð -ð -ð -ñ -ô -ð -ð -ð -r   