
    rh                        d Z ddlmZ ddlZddlZddlmZ  ej                  d       G d d             Zej                   G d	 d
             Z	 G d dej                        Z G d de      Zy)zAbstract interface for models.    )annotationsN)SequenceT)frozenc                  <    e Zd ZU dZdZded<   dZded<   dZded<   y)	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
        y/var/www/html/ai-insurance-compliance-backend/venv/lib/python3.12/site-packages/google/generativeai/notebook/lib/model.pyr   r      s'     E: $K$"&OZ&r   r   c                  &    e Zd ZU dZded<   ded<   y)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   r   c                  @    e Zd Zej                  	 d	 	 	 	 	 dd       Zy)AbstractModelNc                     y)zExecutes the model.Nr   )selfr   
model_argss      r   
call_modelzAbstractModel.call_model/   s    r   Nr   r   r   zModelArguments | Nonereturnr   )r   r   r   abcabstractmethodr   r   r   r   r   r   .   s5    DH"",A"	" "r   r   c                  &    e Zd ZdZ	 d	 	 	 	 	 ddZy)	EchoModelzTModel that returns the original input.

    This is primarily used for testing.
    Nc                L    |r|j                   nd }|d}t        ||g|z        S )N   )r   r   )r
   r   )r   r   r   r
   s       r   r   zEchoModel.call_model<   s9     9C*44"O#%8
 	
r   r   r   )r   r   r   r   r   r   r   r   r$   r$   6   s+     EI	
	
,A	
		
r   r$   )r   
__future__r   r!   dataclassestypingr   	dataclassr   r   ABCr   r$   r   r   r   <module>r,      sw    % " 
   d#' ' $'      "CGG "
 
r   