Ë
    ,Ôj’  ã                   óŠ   — d Z ddlZddlZddlZddlmZ ddlmZmZ ddl	m
Z
 ddlmZ dad„ Zd	„ Zddd
ddddœd„Zdedefd„Zy)zCChamadas ao Gemini (API paga: os dados nao sao usados para treino).é    N)Úgenai)ÚerrorsÚtypesé   )Úagora)Úcarregar_envc                  ó|   — t         €1t        «        t        j                  t        j
                  d   ¬«      a t         S )NÚGEMINI_API_KEY)Úapi_key)Ú_clienter   r   ÚClientÚosÚenviron© ó    ú2/home/ubuntu/projetos/agente-tarefas/agente/llm.pyÚclienter      s*   € äÐÜŒÜ—<‘<¬¯
©
Ð3CÑ(DÔEˆÜ€Or   c           
      óà   — |j                   }| �`|r]| j                  dt        «       |||j                  xs d|j                  xs d|j
                  xs dz   f«       | j                  «        y y y )Nz*INSERT INTO uso_llm VALUES (?, ?, ?, ?, ?)r   )Úusage_metadataÚexecuter   Úprompt_token_countÚcandidates_token_countÚthoughts_token_countÚcommit)ÚconÚetapaÚmodeloÚrespÚus        r   Ú
_registrarr       sq   € Ø×Ñ€AØ
€™1Ø�‰Ð@Ü“W˜e V¨Q×-AÑ-AÒ-FÀQØ×.Ñ.Ò3°!¸×8NÑ8NÒ8SÐRSÑTðVô	Wð 	�
‰
�ð	 €r   gš™™™™™É?i    Úgeral)ÚsistemaÚesquemaÚtemperaturaÚ	max_saidar   r   c                óø  — t        j                  d|||dœ|rd|dœni ¤Ž}t        d«      D ]c  }		 t        «       j                  j                  | ||¬«      }
t        ||| |
«       |
j                  xs d}|rt        j                  |«      c S |c S  y
# t        j                  $ r9}|j                  dv r%|	dk  r t        j                  dd	|	z  z  «       Y d
}~Œ­‚ d
}~wt        j                  $ r	 |	d	k  rY ŒË‚ w xY w)zZGera texto (ou JSON, se `esquema` for um JSON Schema). Tenta de novo em erros temporarios.)Úsystem_instructionÚtemperatureÚmax_output_tokenszapplication/json)Úresponse_mime_typeÚresponse_json_schemaé   )ÚmodelÚcontentsÚconfigÚ )i­  iô  iö  i÷  iø  é   é   Nr   )r   ÚGenerateContentConfigÚranger   ÚmodelsÚgenerate_contentr    ÚtextÚjsonÚloadsr   ÚAPIErrorÚcodeÚtimeÚsleepÚJSONDecodeError)r   Úconteudor"   r#   r$   r%   r   r   ÚcfgÚ	tentativar   ÚtextoÚes                r   ÚgerarrD       sû   € ô ×
%Ñ
%ð lØ"°ÈyñláZaÐ"4ÈgÒVÐgiñl€Cô ˜1–Xˆ	ð	Ü“9×#Ñ#×4Ñ4¸6ÈHÐ]`Ð4ÓaˆDÜ�s˜E 6¨4Ô0Ø—I‘I’O ˆEÙ(/”4—:‘:˜eÓ$Ò:°UÒ:ñ øô �‰ò 	Ø�v‰vÐ2Ñ2°yÀ1²}Ü—
‘
˜1˜q I™~Ñ-Ô.ÜØûÜ×#Ñ#ò 	Ø˜1Š}ÙØð	ús*   °ABÂBÂC9Â&.CÃCÃC9Ã7C9ÚdadosÚmimec                 óD   — t         j                  j                  | |¬«      S )N)ÚdataÚ	mime_type)r   ÚPartÚ
from_bytes)rE   rF   s     r   Úparte_bytesrL   7   s   € Ü�:‰:× Ñ  e°tÐ Ó<Ð<r   )Ú__doc__r8   r   r<   Úgoogler   Úgoogle.genair   r   Úbancor   r/   r   r   r   r    rD   ÚbytesÚstrrL   r   r   r   Ú<module>rS      sU   ðÙ IÛ Û 	Û å ß &å Ý  à€òòð (,°TÀsÐVZØ˜'ôð.=�uð = Cô =r   