o
    '?i                     @  sN   U d Z ddlmZ ddlmZmZ g dZi Zded< dd
dZ	dddZ
dS )z
STT provider factory.

Usage:
    from stt import get_stt_provider
    provider = get_stt_provider("sarvam", api_key="sk_...")
    result = provider.transcribe(audio_url, callid)
    )annotations   )BaseSTT	STTResult)r   r   get_stt_providerzdict[str, type[BaseSTT]]	_REGISTRYnamestrc                   s   d fdd}|S )Nclstype[BaseSTT]c                   s   | t   < | S )N)r   lower)r
   r    7/home/aiteam/pcaa-dev/dashboard-backend/stt/__init__.py	decorator   s   z_register.<locals>.decorator)r
   r   r   )r   r   r   r   r   	_register   s   r   providerapi_keyreturnr   c                 C  s>   | pd   }|dkrddlm} ||dS td|  d)uP  Instantiate and return a named STT provider.

    Parameters
    ----------
    provider:
        Provider name — currently ``"sarvam"``.  Future: ``"deepgram"``,
        ``"whisper"``, etc.
    api_key:
        The provider's API / subscription key.

    Raises
    ------
    ValueError
        If *provider* is not registered.
     sarvamr   )	SarvamSTT)r   zUnknown STT provider 'z'. Available: sarvam)stripr   r   r   
ValueError)r   r   r   r   r   r   r   r      s   

r   N)r   r	   )r   r	   r   r	   r   r   )__doc__
__future__r   baser   r   __all__r   __annotations__r   r   r   r   r   r   <module>   s    
