
    qi                     |    d dl Z 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)
    N)AnyOptionalUnion)InferenceProviderMapping)RequestParameters_as_dict)BaseConversationalTaskTaskProviderHelperfilter_nonec            	       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 )HyperbolicTextToImageTaskc                 *    t         |   ddd       y )N
hyperbolichttps://api.hyperbolic.xyzztext-to-image)providerbase_urltask)super__init__)self	__class__s    a/opt/pipecat/venv/lib/python3.12/site-packages/huggingface_hub/inference/_providers/hyperbolic.pyr   z"HyperbolicTextToImageTask.__init__
   s    ,9U\kl    mapped_modelapi_keyreturnc                      y)Nz/v1/images/generations )r   r   r   s      r   _prepare_routez(HyperbolicTextToImageTask._prepare_route   s    'r   inputs
parametersprovider_mapping_infoc                     |j                   }t        |      }d|v r|j                  d      |d<   d|v r|j                  d      |d<   d|vrd|d<   d|vrd|d<   ||d|S )	Nnum_inference_stepsstepsguidance_scale	cfg_scalewidthi   height)prompt
model_name)provider_idr   pop)r   r    r!   r"   r   s        r   _prepare_payload_as_dictz2HyperbolicTextToImageTask._prepare_payload_as_dict   s     -88 ,
 J.",..1F"GJwz)&0nn5E&FJ{#*$"%Jw:%#&Jx  K
KKr   responserequest_paramsc                 T    t        |      }t        j                  |d   d   d         S )Nimagesr   image)r   base64	b64decode)r   r/   r0   response_dicts       r   get_responsez&HyperbolicTextToImageTask.get_response    s,     *h 7 :7 CDDr   )N)__name__
__module____qualname__r   strr   r   dictr   r   r.   r   bytesr   r7   __classcell__r   s   @r   r   r   	   s    m(3 ( ( (LL'+LD\L	$L EU5$;%7 ERcId Eps Er   r   c                   (     e Zd ZdZdef fdZ xZS )HyperbolicTextGenerationTaskzf
    Special case for Hyperbolic, where text-generation task is handled as a conversational task.
    r   c                 6    t         |   dd       || _        y )Nr   r   )r   r   )r   r   r   )r   r   r   s     r   r   z%HyperbolicTextGenerationTask.__init__*   s$    !1 	 	
 	r   )r8   r9   r:   __doc__r;   r   r>   r?   s   @r   rA   rA   %   s    S  r   rA   )r4   typingr   r   r   huggingface_hub.hf_apir   !huggingface_hub.inference._commonr   r   ,huggingface_hub.inference._providers._commonr	   r
   r   r   rA   r   r   r   <module>rH      s6     ' ' ; I p pE 2 E8
#9 
r   