
    qi                     t    d dl 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e
      Z G d de      Zy	)
    )AnyOptionalUnion)InferenceProviderMapping)RequestParameters_as_dict)BaseConversationalTaskTaskProviderHelperfilter_nonec            	       @     e Zd Z fdZdedededee   f fdZ xZ	S )SambanovaConversationalTaskc                 (    t         |   dd       y )N	sambanovahttps://api.sambanova.ai)providerbase_urlsuper__init__self	__class__s    `/opt/pipecat/venv/lib/python3.12/site-packages/huggingface_hub/inference/_providers/sambanova.pyr   z$SambanovaConversationalTask.__init__	   s    +8RS    inputs
parametersprovider_mapping_inforeturnc                    |j                  d      }t        |t              rR|j                  d      dk(  r>|j                  di       }|j                  d      }t        |t              r|du s|d|d<   t        |   |||      }|S )Nresponse_formattypejson_schemastrictTF)get
isinstancedictr   _prepare_payload_as_dict)	r   r   r   r   response_format_configjson_schema_configr#   payloadr   s	           r   r'   z4SambanovaConversationalTask._prepare_payload_as_dict   s     ",0A!B,d3%))&1]B%;%?%?r%R"+//90$7Vt^v~38&x0'26:G\]r   )
__name__
__module____qualname__r   r   r&   r   r   r'   __classcell__r   s   @r   r   r      s7    T'+D\	$ r   r   c            	       v     e Zd Z fdZdededefdZdededede	e   fd	Z
dd
eeef   de	e   defdZ xZS )SambanovaFeatureExtractionTaskc                 *    t         |   ddd       y )Nr   r   zfeature-extraction)r   r   taskr   r   s    r   r   z'SambanovaFeatureExtractionTask.__init__   s    +8RYmnr   mapped_modelapi_keyr   c                      y)Nz/v1/embeddings )r   r4   r5   s      r   _prepare_routez-SambanovaFeatureExtractionTask._prepare_route   s    r   r   r   r   c                 :    t        |      }||j                  d|S )N)inputmodel)r   provider_id)r   r   r   r   s       r   r'   z7SambanovaFeatureExtractionTask._prepare_payload_as_dict"   s%     !,
*?*K*KZzZZr   responserequest_paramsc                 N    t        |      d   }|D cg c]  }|d   	 c}S c c}w )Ndata	embedding)r   )r   r=   r>   
embeddingsrA   s        r   get_responsez+SambanovaFeatureExtractionTask.get_response(   s*    h'/
8BC9	+&CCCs   ")N)r+   r,   r-   r   strr8   r   r&   r   r   r'   r   bytesr   rC   r.   r/   s   @r   r1   r1      s    o 3      [['+[D\[	$[DU5$;%7 DRcId Dps Dr   r1   N)typingr   r   r   huggingface_hub.hf_apir   !huggingface_hub.inference._commonr   r   ,huggingface_hub.inference._providers._commonr	   r
   r   r   r1   r7   r   r   <module>rJ      s3    ' ' ; I p p"8 &D%7 Dr   