o
    êi                     @   s|   d dl mZmZ d dlZddlmZmZmZmZm	Z	m
Z
 ddlmZmZmZmZmZmZmZmZ G dd deZdd	 ZdS )
    )	GeneratorLiteralN   )GGStream
RemoteCallRequestconvertconvert_stream)APICreditEntity
ASRRequestASRResponseModelEntityBackendsPackageEntityPaginatedResponse
TTSRequestc                   @   s  e Zd Zed8dededefddZede	de
e fddZed	d
dddddddd	dedededB dee eB dB dededB dee eB dB dee eB dB ded de
ee  fddZedede
e fddZeddddd ddd!d"d#ed$ d%ed ded&edB d'edB d(ed  d)ee d*ee dB d+ee dB d,ede
e fd-d.Zedede
d fd/d0Zedddddd1dededB d&edB d'edB d#ed$ dB d+ee dB de
d fd2d3Zede
e fd4d5Zede
e fd6d7ZdS )9Session
speech-1.5requestbackendreturnc                 c   sB    t ddd|dt| dV  dtttd f fdd}| S )	NPOSTz/v1/ttsapplication/msgpack)Content-Typemodelmethodurlheaderscontentr   c                  s   s    dV } 	 | V } | dkrd S q)N     )chunkr"   r"   G/home/ubuntu/.local/lib/python3.10/site-packages/fish_audio_sdk/apis.pyg   s   zSession.tts.<locals>.g)r   	ormsgpackpackb
model_dumpr   bytes)selfr   r   r%   r"   r"   r$   tts   s   zSession.ttsc                 c   s0    t ddddit| dV }t| S )Nr   z/v1/asrr   r   r   )r   r&   r'   r(   r   model_validatejson)r*   r   responser"   r"   r$   asr%   s   zSession.asr
   r   NF
task_count)		page_sizepage_numbertitletag	self_only	author_idlanguagetitle_languagesort_byr2   r3   r4   r5   r6   r7   r8   r9   r:   )r1   
created_atc       	         c   s<    t ddt|||||||||	d	dV }
tt |
 S )NGET/model)	r2   r3   r4   r5   r*   r7   r8   r9   r:   )r   r   params)r   filter_noner   r   r,   r-   )thisr2   r3   r4   r5   r6   r7   r8   r9   r:   r.   r"   r"   r$   list_models/   s$   zSession.list_modelsmodel_idc                 c   s$    t dd| dV }t| S )Nr<   /model/r   r   )r   r   r,   r-   )r@   rB   r.   r"   r"   r$   	get_modelP   s   zSession.get_modelprivater+   fastT)
visibilitytypedescriptioncover_image
train_modetextstagsenhance_audio_qualityrH   )publicunlistrF   rI   rJ   rK   rL   voicesrM   rN   rO   c       
         c   st    |d u rg }|	d u rg }	dd |D }|d ur| d|f tddt|||||||	|
d|dV }t| S )Nc                 S   s   g | ]}d |fqS )rR   r"   ).0voicer"   r"   r$   
<listcomp>j   s    z(Session.create_model.<locals>.<listcomp>rK   r   r=   )rH   rI   r4   rJ   rL   rM   rN   rO   r   r   datafiles)appendr   r?   r   r,   r-   )r@   rH   rI   r4   rJ   rK   rL   rR   rM   rN   rO   rX   r.   r"   r"   r$   create_modelU   s2   zSession.create_modelc                 c   s    t dd| dV  d S )NDELETErC   rD   )r   )r@   rB   r"   r"   r$   delete_model   s   zSession.delete_model)r4   rJ   rK   rH   rN   c             	   c   sF    g }|d ur| d|f tdd| t||||d|dV  d S )NrK   PATCHrC   )r4   rJ   rH   rN   rV   )rY   r   r?   )r@   rB   r4   rJ   rK   rH   rN   rX   r"   r"   r$   update_model   s    zSession.update_modelc                 c       t dddV }t| S )Nr<   z/wallet/self/api-creditrD   )r   r   r,   r-   r@   r.   r"   r"   r$   get_api_credit      zSession.get_api_creditc                 c   r_   )Nr<   z/wallet/self/packagerD   )r   r   r,   r-   r`   r"   r"   r$   get_package   rb   zSession.get_package)r   )__name__
__module____qualname__r
   r   r   r   r+   r	   r   r   r   r/   intstrlistboolr   r   r   rA   rE   r)   rZ   r\   r^   r   ra   r   rc   r"   r"   r"   r$   r      s    		

 	


*

	r   c                 C   s   dd |   D S )Nc                 S   s   i | ]\}}|d ur||qS )Nr"   )rS   kvr"   r"   r$   
<dictcomp>   s    zfilter_none.<locals>.<dictcomp>)items)dr"   r"   r$   r?      s   r?   )typingr   r   r&   ior   r   r   r   r	   r
   schemasr   r   r   r   r   r   r   r   r   r?   r"   r"   r"   r$   <module>   s     ( 