U
    çéÕj¼  ã                   @   s,   d dl mZmZ d dlmZmZ dd„ ZdS )é    )ÚguardarÚ	historial)Úllamar_geminiÚejecutar_herramienta_researchc                 C   sT  t | tƒr|  ¡ stdƒ‚t||dd�}| dd| igdœ¡ g }tdƒD ]ü}t|ƒ}|d d	 d
 }dd„ | dg ¡D ƒ}|sÖd 	dd„ | dg ¡D ƒ¡ ¡ }	|	s¬t
dƒ‚t||d| ƒ t||d|	ƒ |	|dœ  S | |¡ g }
|d d… D ]D}|d }| di ¡}t||ƒ}| |¡ |
 d|d|idœi¡ qð| d|
dœ¡ qJt
dƒ‚d S )Nu   Pregunta invÃ¡lidaé   )ZlimiteÚuserÚtext)ZroleÚpartsé   Z
candidatesr   Zcontentc                 S   s   g | ]}d |kr|d  ‘qS )ZfunctionCall© ©Ú.0Zparter   r   úhermes_brain_v4.pyÚ
<listcomp>   s   þz'preguntar_hermes_v4.<locals>.<listcomp>r	   Ú c                 s   s   | ]}|  d d¡V  qdS )r   r   N)Úgetr   r   r   r   Ú	<genexpr>   s   ÿz&preguntar_hermes_v4.<locals>.<genexpr>u   Gemini no devolviÃ³ textoZmodel)Ú	respuestaZherramientasé   ÚnameÚargsZfunctionResponseÚresult)r   Zresponseu#   LÃ­mite de investigaciÃ³n alcanzado)Ú
isinstanceÚstrÚstripÚ
ValueErrorr   ÚappendÚranger   r   ÚjoinÚRuntimeErrorr   r   )ZpreguntaZusuarioZsesionZ
contenidosZherramientas_usadasZvueltaZ	resultadoZ	contenidoZllamadasr   Z
respuestasZllamadaZnombreZ
argumentosZdatosr   r   r   Úpreguntar_hermes_v4   s\    þ
þ

þþ

þ
þÿþ
r    N)Zhermes_memoryr   r   Zhermes_research_v2r   r   r    r   r   r   r   Ú<module>   s   