o
    õ)hØ  ã                   @   sB   d dl mZ d dlZdefdd„Zdeddfdd„Zddd„ZdS )é    )ÚClientNÚreturnc               
   C   s\   zt ƒ } dd„ |  ¡ d D ƒW S  ty- } zt dt|ƒ› �¡ g W  Y d }~S d }~ww )Nc                 S   s   g | ]}|d  ‘qS )Úname© )Ú.0Úmodelr   r   úFC:\Users\shubh\Videos\agent\agent_preprod\modules\llm\ollama_client.pyÚ
<listcomp>   s    zlist_models.<locals>.<listcomp>ÚmodelszModel listing failed: )r   ÚlistÚ	ExceptionÚloggingÚerrorÚstr)ÚclientÚer   r   r   Úlist_models   s   €þr   Ú
model_namec              
   C   sŽ   zt ƒ }|j| dd� W n ty# } zt dt|ƒ› �¡ ‚ d }~ww tjdd| idd�}| ¡ D ]}t	 
|¡}| d¡rDt|d ƒ‚q2d S )	NF)ÚstreamzModel pull failed: zhttp://localhost:11434/api/pullr   T)Újsonr   r   )r   Úpullr   r   r   r   ÚrequestsÚpostÚ
iter_linesr   ÚloadsÚget)r   r   r   ÚresponseÚlineÚstatusr   r   r   Ú
pull_model   s&   €þý

ÿþr   Úcogitoçffffffæ?é–   c              
   C   sj   zt jd|| ||ddœdd�}| ¡  | ¡  dd¡W S  ty4 } zdt|ƒ› �W  Y d	}~S d	}~ww )
z,Query local Ollama server using its REST APIz#http://localhost:11434/api/generateF)r   ÚpromptÚtemperatureÚ
max_tokensr   é   )r   Útimeoutr   Ú zOllama Error: N)r   r   Úraise_for_statusr   r   r   r   )r#   r   r$   r%   r   r   r   r   r   Úquery_ollama!   s"   û÷€ÿr*   )r    r!   r"   )Úollamar   r   r   r   r   r   r*   r   r   r   r   Ú<module>   s
   	