
    ;3ho                         d dl Z d dlmZ 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mZ dZdZ G d	 d
ee      Z G d de      Z G d de      Z G d de      Zy)    N)ABC)AnyDictOptionalUnion)InferenceProviderMapping)RequestParameters_as_dict)BaseConversationalTaskBaseTextGenerationTaskTaskProviderHelperfilter_nonetogetherzhttps://api.together.xyzc                   <     e Zd ZdZdef fdZdededefdZ xZS )TogetherTaskz"Base class for Together API tasks.taskc                 :    t         |   t        t        |       y )N)providerbase_urlr   super__init__	_PROVIDER	_BASE_URL)selfr   	__class__s     m/var/www/html/audio-gradio/venv/lib/python3.12/site-packages/huggingface_hub/inference/_providers/together.pyr   zTogetherTask.__init__   s    )idK    mapped_modelapi_keyreturnc                     | j                   dk(  ry| j                   dk(  ry| j                   dk(  ryt        d| j                    d      )	Ntext-to-imagez/v1/images/generationsconversationalz/v1/chat/completionsztext-generationz/v1/completionszUnsupported task 'z' for Together API.)r   
ValueError)r   r   r    s      r   _prepare_routezTogetherTask._prepare_route   sK    99'+YY**)YY++$-dii[8KLMMr   )__name__
__module____qualname____doc__strr   r&   __classcell__r   s   @r   r   r      s2    ,LS LN3 N N Nr   r   c                   D     e Zd Z fdZddeeef   dee   de	fdZ
 xZS )TogetherTextGenerationTaskc                 8    t         |   t        t               y N)r   r   r   r   r   s    r   r   z#TogetherTextGenerationTask.__init__$       )i@r   responserequest_paramsr!   c                 v    t        |      d   d   }|d   |j                  d      |j                  d      ddS )Nchoicesr   textfinish_reasonseed)r9   r:   )generated_textdetails)r
   get)r   r4   r5   outputs       r   get_responsez'TogetherTextGenerationTask.get_response'   sD    (#I.q1$Vn!'O!<

6*
 	
r   N)r'   r(   r)   r   r   bytesr   r   r	   r   r?   r,   r-   s   @r   r/   r/   #   s3    A
U5$;%7 
RcId 
ps 
r   r/   c            	       @     e Zd Z fdZdedededee   f fdZ xZ	S )TogetherConversationalTaskc                 8    t         |   t        t               y r1   r   r2   s    r   r   z#TogetherConversationalTask.__init__3   r3   r   inputs
parametersprovider_mapping_infor!   c                     t         |   |||      }|j                  d      }t        |t              rD|j                  d      dk(  r0|j                  d      }t        |t              rd|v rd|d   d|d<   |S )Nresponse_formattypejson_schemaschemajson_object)rJ   rL   )r   _prepare_payload_as_dictr=   
isinstancedict)r   rE   rF   rG   payloadrI   json_schema_detailsr   s          r   rN   z3TogetherConversationalTask._prepare_payload_as_dict6   s     '26:G\]$..):;ot,1D1DV1LP]1]"1"5"5m"D-t4EX9X)1(;.)*
 r   )
r'   r(   r)   r   r   r   r   r   rN   r,   r-   s   @r   rC   rC   2   s7    A'+D\	$ r   rC   c            	       b     e Zd Z 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 )TogetherTextToImageTaskc                 $    t         |   d       y )Nr#   )r   r   r2   s    r   r   z TogetherTextToImageTask.__init__G   s    )r   rE   rF   rG   r!   c                     |j                   }t        |      }d|v r|j                  d      |d<   d|v r|j                  d      |d<   |dd|d|iS )Nnum_inference_stepsstepsguidance_scaleguidancebase64)promptrI   model)provider_idr   pop)r   rE   rF   rG   r   s        r   rN   z0TogetherTextToImageTask._prepare_payload_as_dictJ   si     -88 ,
 J.",..1F"GJwz)%/^^4D%EJz" XccWVbccr   r4   r5   c                 T    t        |      }t        j                  |d   d   d         S )Ndatar   b64_json)r
   r[   	b64decode)r   r4   r5   response_dicts       r   r?   z$TogetherTextToImageTask.get_responseV   s,     *f 5a 8 DEEr   r@   )r'   r(   r)   r   r   r   r   r   rN   r   rA   r	   r?   r,   r-   s   @r   rT   rT   F   sd    *
d
d'+
dD\
d	$
dFU5$;%7 FRcId Fps Fr   rT   )r[   abcr   typingr   r   r   r   huggingface_hub.hf_apir   !huggingface_hub.inference._commonr	   r
   ,huggingface_hub.inference._providers._commonr   r   r   r   r   r   r   r/   rC   rT    r   r   <module>rk      sf      - - ; I  	&	N%s N 
!7 
!7 (Fl Fr   