o
    @)i                     @   s   d dl mZ d dlmZ d dlmZ d dlZd dlmZ edddZ	e	j
ed	gd
d	gd	gd eddZe	ddd Ze	ddefddZedkrWeje	ddd dS dS )    )FastAPI)CORSMiddleware)ListN)
TranslatorzHindi Translation APIz1.0.0)titleversion*T)allow_originsallow_credentialsallow_methodsallow_headersz
gemma3:12b)modelz/healthc                      s
   ddiS )Nstatushealthy r   r   r   M/var/www/eduai.edurigo.com/language_translate_question_text/production/app.pyhealth_check   s   r   z
/translaterequestc              
      s8  zZ|  d}|  dd}|  dg }|s2d }|r(t|d tr(|d  d}dd|||g d	W S g }g }t|D ]S\}}t|tr| d
rV||d
  |d
|f | dri||d  |d|f | drt|d D ]\}	}
|
 dr||
d  |d||	f qtq:|sd }|rt|d tr|d  d}dd|||g d	W S t||}tdt| d|  t|t	rt
|dkr|\}}nt|tr|}dddd}n	tdt| dd l}||}t|D ]K\}^}}|t
|k r=|d
kr|d }|| || d
< q|dkr#|d }|| || d< q|dkr=|d |d }}|| || d | d< qd }|rRt|d trR|d  d}dd|||||dW S  ty } z2d }|  dg }|rt|d tr|d  d}dt||  d|  dd|g d	W  Y d }~S d }~ww )N	client_idtarget_languageHindislides_datar   isQuestionLanguageFzNo data provided)successmessager   r   r   r   nameexplanationoptionsquestionOptionzNo valid sentences providedztranslate_array returned: z -    )input_tokensoutput_tokenstotal_tokensz-Unexpected return type from translate_array:    Tz"Translation completed successfully)r   r   r   r   r   r   token_usage)get
isinstancedict	enumerateappend
translatortranslate_arrayprinttypetuplelenlist	Exceptioncopydeepcopystr)r   r   r   r   is_question_language	sentencessentence_mappingiitemjoptionresult
translatedr$   r2   result_slides_datatranslation_idx
field_typeindicesitem_idx
option_idxer   r   r   	translate   s   






	







rE   __main__z0.0.0.0i@  )hostport)fastapir   fastapi.middleware.corsr   typingr   uvicornr*   r   appadd_middlewarer%   r   postr'   rE   __name__runr   r   r   r   <module>   s*    

{