o
    ß­j  ã                   @  s€   d Z ddlmZ ddlZddlZddlmZ ejdd�G dd„ dƒƒZejG d	d
„ d
ƒƒZ	G dd„ dej
ƒZG dd„ deƒZdS )zAbstract interface for models.é    )ÚannotationsN)ÚSequenceT)Úfrozenc                   @  s6   e Zd ZU dZdZded< dZded< dZded< dS )	ÚModelArgumentsa  Common arguments for models.

    Attributes:
      model: The model string to use. If None a default model will be selected.
      temperature: The temperature. Must be greater-than-or-equal-to zero.
      candidate_count: Number of candidates to return.
    Nz
str | NoneÚmodelzfloat | NoneÚtemperaturez
int | NoneÚcandidate_count)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r   r   © r   r   úc/var/www/html/CropPilot/venv/lib/python3.10/site-packages/google/generativeai/notebook/lib/model.pyr      s
   
 r   c                   @  s"   e Zd ZU dZded< ded< dS )ÚModelResultsz0Results from calling AbstractModel.call_model().ÚstrÚmodel_inputzSequence[str]Útext_resultsN)r	   r
   r   r   r   r   r   r   r   r   &   s   
 r   c                   @  s    e Zd Zej	d
ddd	„ƒZdS )ÚAbstractModelNr   r   Ú
model_argsúModelArguments | NoneÚreturnr   c                 C  s   dS )zExecutes the model.Nr   )Úselfr   r   r   r   r   Ú
call_model/   s    zAbstractModel.call_model©N©r   r   r   r   r   r   )r	   r
   r   ÚabcÚabstractmethodr   r   r   r   r   r   .   s    ÿr   c                   @  s   e Zd ZdZ	ddd	d
„ZdS )Ú	EchoModelzTModel that returns the original input.

    This is primarily used for testing.
    Nr   r   r   r   r   r   c                 C  s,   |r|j nd }|d u rd}t||g| d�S )Né   )r   r   )r   r   )r   r   r   r   r   r   r   r   <   s   þzEchoModel.call_modelr   r   )r	   r
   r   r   r   r   r   r   r   r   6   s    ÿr   )r   Ú
__future__r   r   ÚdataclassesÚtypingr   Ú	dataclassr   r   ÚABCr   r   r   r   r   r   Ú<module>   s   
