a
    h                     @   sl   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 G dd deZG dd deZd	S )
    )AnyDictOptionalUnion)InferenceProviderMapping)RequestParameters_as_dict)BaseConversationalTaskTaskProviderHelperfilter_nonec                       s8   e Zd Z fddZeeeee d fddZ  Z	S )SambanovaConversationalTaskc                    s   t  jddd d S )N	sambanovahttps://api.sambanova.ai)providerbase_urlsuper__init__self	__class__ j/var/www/html/assistant/venv/lib/python3.9/site-packages/huggingface_hub/inference/_providers/sambanova.pyr   	   s    z$SambanovaConversationalTask.__init__inputs
parametersprovider_mapping_inforeturnc                    sn   | d}t|trZ| ddkrZ| di }| d}t|trZ|du sR|d u rZd|d< t |||}|S )NZresponse_formattypeZjson_schemastrictTF)get
isinstancedictr   _prepare_payload_as_dict)r   r   r   r   Zresponse_format_configZjson_schema_configr    payloadr   r   r   r$      s    


z4SambanovaConversationalTask._prepare_payload_as_dict)
__name__
__module____qualname__r   r   r   r   r   r$   __classcell__r   r   r   r   r      s   r   c                       sf   e Zd Z fddZeeedddZeeee	e dddZ
deeef e	e ed
ddZ  ZS )SambanovaFeatureExtractionTaskc                    s   t  jdddd d S )Nr   r   zfeature-extraction)r   r   taskr   r   r   r   r   r      s    z'SambanovaFeatureExtractionTask.__init__)mapped_modelapi_keyr   c                 C   s   dS )Nz/v1/embeddingsr   )r   r,   r-   r   r   r   _prepare_route   s    z-SambanovaFeatureExtractionTask._prepare_router   c                 C   s   t |}||jd|S )N)inputmodel)r   Zprovider_id)r   r   r   r   r   r   r   r$   "   s    z7SambanovaFeatureExtractionTask._prepare_payload_as_dictN)responserequest_paramsr   c                 C   s   t |d }dd |D S )Ndatac                 S   s   g | ]}|d  qS )	embeddingr   ).0r4   r   r   r   
<listcomp>*       z?SambanovaFeatureExtractionTask.get_response.<locals>.<listcomp>)r   )r   r1   r2   Z
embeddingsr   r   r   get_response(   s    z+SambanovaFeatureExtractionTask.get_response)N)r&   r'   r(   r   strr.   r   r   r   r   r$   r   bytesr   r8   r)   r   r   r   r   r*      s   r*   N)typingr   r   r   r   Zhuggingface_hub.hf_apir   Z!huggingface_hub.inference._commonr   r   Z,huggingface_hub.inference._providers._commonr	   r
   r   r   r*   r   r   r   r   <module>   s
   