o
    ZhP
                     @  sZ   d Z ddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ dZG dd	 d	ejZdS )
z!Model that uses the Text service.    )annotations)retryN)generation_types)modelzmodels/gemini-1.5-flashc                   @  s0   e Zd ZdZ			ddddZ	ddddZdS )	TextModelz6Concrete model that uses the generate_content service.Npromptstrr   
str | Nonetemperaturefloat | Nonecandidate_count
int | Nonereturn(generation_types.GenerateContentResponsec           	      C  sZ   i }|d ur
||d< |d ur||d< |pt }tj|d}tjjjdi |}|j||dS )Nr
   r   )
model_name)Zgeneration_config )_DEFAULT_MODELgenaiZGenerativeModeltypesr   ZGenerationConfigZgenerate_content)	selfr   r   r
   r   Z
gen_configr   Z	gen_modelgcr   r   ^/var/www/html/lang_env/lib/python3.10/site-packages/google/generativeai/notebook/text_model.py_generate_text   s   zTextModel._generate_textmodel_input
model_argsmodel_lib.ModelArguments | Nonemodel_lib.ModelResultsc                 C  st   |d u rt  }ttj| j}|||j|j|jd}g }|j	D ]}|
ddd |jjD  q!t j||dS )N)r   r   r
   r    c                 s  s    | ]}|j V  qd S N)text).0pr   r   r   	<genexpr>C   s    z'TextModel.call_model.<locals>.<genexpr>)r   Ztext_results)	model_libZModelArgumentsr   RetryZif_transient_errorr   r   r
   r   
candidatesappendjoincontentpartsZModelResults)r   r   r   Zretryable_fnresponseZtext_outputscr   r   r   
call_model/   s    
 zTextModel.call_model)NNN)
r   r   r   r	   r
   r   r   r   r   r   r   )r   r   r   r   r   r   )__name__
__module____qualname____doc__r   r,   r   r   r   r   r      s    r   )r0   
__future__r   Zgoogle.api_corer   Zgoogle.generativeaiZgenerativeair   Zgoogle.generativeai.typesr   Z google.generativeai.notebook.libr   r#   r   ZAbstractModelr   r   r   r   r   <module>   s   