
    $	&he
                         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     /var/www/pru.catia.catastroantioquia-mas.com/valormas/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 xZS )TogetherConversationalTaskc                 8    t         |   t        t               y r1   r   r2   s    r   r   z#TogetherConversationalTask.__init__3   r3   r   )r'   r(   r)   r   r,   r-   s   @r   rC   rC   2   s    A A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__8   s    )r   inputs
parametersprovider_mapping_infor!   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)promptresponse_formatmodel)provider_idr   pop)r   rH   rI   rJ   r   s        r   _prepare_payload_as_dictz0TogetherTextToImageTask._prepare_payload_as_dict;   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
   rP   	b64decode)r   r4   r5   response_dicts       r   r?   z$TogetherTextToImageTask.get_responseG   s,     *f 5a 8 DEEr   r@   )r'   r(   r)   r   r   r   r   r   rV   r   rA   r	   r?   r,   r-   s   @r   rF   rF   7   sd    *
d
d'+
dD\
d	$
dFU5$;%7 FRcId Fps Fr   rF   )rP   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   rF    r   r   <module>rb      sh      - - ; I  	&	N%s N 
!7 
A!7 A
Fl Fr   