U
    ”Ê¹jõ  ã                   @   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__© úm/var/www/html/bwave/python/venv/lib/python3.8/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ksR|d k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>*   s     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   r7   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
   