
    -ii                         d dl Z d dlm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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dS )    N)ABC)Any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                 d    t                                          t          t          |           d S )N)providerbase_urlr   super__init__	_PROVIDER	_BASE_URL)selfr   	__class__s     k/var/www/html/speakWrite/venv/lib/python3.11/site-packages/huggingface_hub/inference/_providers/together.pyr   zTogetherTask.__init__   s(    )idKKKKK    mapped_modelapi_keyreturnc                     | j         dk    rdS | j         dk    rdS | j         dk    rdS 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   sY    9''++Y***))Y+++$$LdiLLLMMMr   )__name__
__module____qualname____doc__strr   r%   __classcell__r   s   @r   r   r      s        ,,LS L L L L L LN3 N N N N N N N N N Nr   r   c                   P     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                 b    t                                          t          t                     d S N)r   r   r   r   r   s    r   r   z#TogetherTextGenerationTask.__init__$   &    )i@@@@@r   Nresponserequest_paramsr    c                     t          |          d         d         }|d         |                    d          |                    d          ddS )Nchoicesr   textfinish_reasonseed)r8   r9   )generated_textdetails)r	   get)r   r3   r4   outputs       r   get_responsez'TogetherTextGenerationTask.get_response'   sW    (##I.q1$Vn!'O!<!<

6** 
 
 	
r   N)r&   r'   r(   r   r   bytesdictr   r   r   r>   r+   r,   s   @r   r.   r.   #   s{        A A A A A
 
U5$;%7 
RcId 
ps 
 
 
 
 
 
 
 
r   r.   c            	       F     e Zd Z fdZdedededee         f fdZ xZ	S )TogetherConversationalTaskc                 b    t                                          t          t                     d S r0   r   r1   s    r   r   z#TogetherConversationalTask.__init__3   r2   r   inputs
parametersprovider_mapping_infor    c                 L   t                                          |||          }|                    d          }t          |t                    rU|                    d          dk    r<|                    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<   
isinstancerA   )r   rE   rF   rG   payloadrI   json_schema_detailsr   s          r   rN   z3TogetherConversationalTask._prepare_payload_as_dict6   s     ''226:G\]]$..):;;ot,, 	1D1DV1L1LP]1]1]"1"5"5m"D"D-t44 EX9X9X)1(;. .)*
 r   )
r&   r'   r(   r   r   rA   r   r   rN   r+   r,   s   @r   rC   rC   2   s        A A A A A'+D\	$         r   rC   c            	       t     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                 J    t                                          d           d S )Nr"   )r   r   r1   s    r   r   z TogetherTextToImageTask.__init__G   s!    )))))r   rE   rF   rG   r    c                     |j         }t          |          }d|v r|                    d          |d<   d|v r|                    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   s{     -8 ,,
 J..",..1F"G"GJwz))%/^^4D%E%EJz" XcccWVbcccr   Nr3   r4   c                 l    t          |          }t          j        |d         d         d                   S )Ndatar   b64_json)r	   rZ   	b64decode)r   r3   r4   response_dicts       r   r>   z$TogetherTextToImageTask.get_responseV   s/     **f 5a 8 DEEEr   r?   )r&   r'   r(   r   r   rA   r   r   rN   r   r@   r   r>   r+   r,   s   @r   rS   rS   F   s        * * * * *
d
d'+
dD\
d	$
d 
d 
d 
dF FU5$;%7 FRcId Fps F F F F F F F Fr   rS   )rZ   abcr   typingr   r   r   huggingface_hub.hf_apir   !huggingface_hub.inference._commonr   r	   ,huggingface_hub.inference._providers._commonr
   r   r   r   r   r   r   r.   rC   rS    r   r   <module>rj      sy          ' ' ' ' ' ' ' ' ' ' ; ; ; ; ; ; I I I I I I I I            	&	N N N N N%s N N N 
 
 
 
 
!7 
 
 
    !7   (F F F F Fl F F F F Fr   