o
    ge                     @   s   d dl mZmZmZmZ d dlmZ d dlmZm	Z	 d dl
mZmZmZ eeZdZdddd	d
dddddddddiZG dd de	ZdS )    )AnyDictOptionalUnion)	constants)RequestParametersTaskProviderHelper)build_hf_headers	get_tokenloggingzhttps://api.sambanova.aiconversationalzQwen2.5-Coder-32B-InstructzQwen2.5-72B-InstructzQwQ-32B-PreviewzMeta-Llama-3.3-70B-InstructzMeta-Llama-3.2-1B-InstructzMeta-Llama-3.2-3B-InstructzLlama-3.2-11B-Vision-InstructzLlama-3.2-90B-Vision-InstructzMeta-Llama-3.1-8B-InstructzMeta-Llama-3.1-70B-InstructzMeta-Llama-3.1-405B-InstructzMeta-Llama-Guard-3-8B)zQwen/Qwen2.5-Coder-32B-InstructzQwen/Qwen2.5-72B-InstructzQwen/QwQ-32B-Previewz!meta-llama/Llama-3.3-70B-Instructzmeta-llama/Llama-3.2-1Bzmeta-llama/Llama-3.2-3Bz(meta-llama/Llama-3.2-11B-Vision-Instructz(meta-llama/Llama-3.2-90B-Vision-Instructz meta-llama/Llama-3.1-8B-Instructz!meta-llama/Llama-3.1-70B-Instructz"meta-llama/Llama-3.1-405B-Instructzmeta-llama/Llama-Guard-3-8Bc                   @   s   e Zd Zdd Zdddedeeef dedee d	ee d
eeeef  defddZ	dee defddZ
deeef defddZdS )SambanovaConversationalTaskc                 C   s
   d| _ d S )Nr   )task)self r   e/var/www/visachat/venv/lib/python3.10/site-packages/huggingface_hub/inference/_providers/sambanova.py__init__    s   
z$SambanovaConversationalTask.__init__N)extra_payloadinputs
parametersheadersmodelapi_keyr   returnc          
      C   s   |d u rt  }|d u rtd|dr!tjjdd}td nt}td i t	|d|}| 
|}d|id	d
 | D d|i}	t| d| j||	d |dS )Nz^You must provide an api_key to work with Sambanova API or log in with `huggingface-cli login`.hf_	sambanova)providerz6Calling Sambanova provider through Hugging Face proxy.z$Calling Sambanova provider directly.)tokenmessagesc                 S   s   i | ]\}}|d ur||qS Nr   ).0kvr   r   r   
<dictcomp>A   s    z?SambanovaConversationalTask.prepare_request.<locals>.<dictcomp>r   z/v1/chat/completions)urlr   r   jsondatar   )r
   
ValueError
startswithr   INFERENCE_PROXY_TEMPLATEformatloggerinfoBASE_URLr	   
_map_modelitemsr   r   )
r   r   r   r   r   r   r   base_urlmapped_modelpayloadr   r   r   prepare_request$   s6   



z+SambanovaConversationalTask.prepare_requestc                 C   s`   |d u rt d| jtvrt d| j dt| j |}|d u r.t d| d| j d|S )Nz.Please provide a model available on Sambanova.zTask z not supported with Sambanova.zModel z* is not supported with Sambanova for task .)r'   r   SUPPORTED_MODELSget)r   r   r1   r   r   r   r.   N   s   
z&SambanovaConversationalTask._map_modelresponsec                 C   s   |S r   r   )r   r7   r   r   r   get_responseX   s   z(SambanovaConversationalTask.get_response)__name__
__module____qualname__r   r   r   strr   r   r3   r.   r   bytesr8   r   r   r   r   r      s(    
	
*
r   N)typingr   r   r   r   huggingface_hubr   !huggingface_hub.inference._commonr   r   huggingface_hub.utilsr	   r
   r   
get_loggerr9   r+   r-   r5   r   r   r   r   r   <module>   s,    
