
    yLiA                        d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	 d dl
Z
d dlZ e       Z G d de      Z G d d	e      Z ed
        ed      Z ed        ed        e
j"                  d      Z ed       ej'                  d      defd       Zej'                  d       ed      fdefd       Zedk(  r"d dlZ ed        ej0                  edd       yy)    )FastAPIFile
UploadFile)	BaseModel)SentenceTransformer)pipelineNc                   &    e Zd ZU eed<   dZeed<   y)EmbedRequestpromptzen-GBlanguage_codeN)__name__
__module____qualname__str__annotations__r        '/var/www/html/lcp-python-backend/app.pyr
   r
      s    K M3 r   r
   c                       e Zd ZU eed<   y)KeywordRequesttargetN)r   r   r   r   r   r   r   r   r   r      s    Kr   r   z$Loading SentenceTransformer model...all-MiniLM-L6-v2zModel loaded successfully!zLoading Whisper model...basez"Whisper model loaded successfully!z/embedrequestc                   K   	 t        d|         | j                  }| j                  }t        d| d|        t        j	                  |      }t        d|j
                          |j                         }|dt        |      ||d}t        d|        |S # t        $ r.}t        dt        |              d	t        |      icY d }~S d }~ww xY ww)
NzRequest data: zProcessing prompt: 'z' in language: z)Embedding generated successfully, shape: r   )	embeddingmodel
dimensionsr   r   z
Response: zError: error)
printr   r   r   encodeshapetolistlen	Exceptionr   )r   r   r   r   embedding_listresponsees          r   generate_embeddingr)      s     !wi()--$VHOM?KL LL(	9)//9JKL #))+ ('n-*
 	
8*%& !Ax !Q  !s5   CBB C	C"#CCCCCz/transcribe.filec                   K   	 t        d| j                          t        d| j                          d| j                   }t        d|        t        |d      5 }| j	                          d {   }|j                  |       d d d        t        dt        j                  j                  |       d       t        j                  j                  |      sdd	iS t        j                  j                  | j                        d
   j                         }t        d|        	 |dv rddiS t        j                  |d      }t        d|d           	 t        j                   |       |d   |j#                  dd      | j                  dS 7 # 1 sw Y   xY w# t        $ r1}t        dt        |              ddt        |       icY d }~S d }~ww xY w# t        $ rq}t        dt        |              dt%               v r4t        j                  j                        rt        j                   |       ddt        |       icY d }~S d }~ww xY ww)NzFile name: zFile content type: temp_zSaving file to: wbzFile saved successfully. Size: z bytesr   zFailed to save uploaded file   zFile extension: )z.webmz.mp4z.m4az.oggzAWebM/MP4/M4A files require FFmpeg to be installed on your system.F)fp16zTranscription result: textzWhisper error: zTranscription failed: languageunknown)r0   r1   filenamezError during transcription: temp_file_path)r    r3   content_typeopenreadwriteospathgetsizeexistssplitextlowerwhisper_model
transcriber%   r   removegetlocals)r*   r4   buffercontentfile_extensionresultwhisper_errorr(   s           r   transcribe_audiorI   <   s8    4<DMM?+,#D$5$5#678 !0  012.$' 	"6 IIK'GLL!	" 	/0O/PPVWX ww~~n-;<< ))$--8;AAC  012	L!BB ` 
 '11.u1M.vf~.>?@ 			.! 6N

:y9
 	
A (	" 	"4  	LOC$6#7895c-6H5IJKK	L  <,SVH56vx'BGGNN>,JIIn%1#a&:;;<s   IAG F1F2FAG IAG 'F  .I/(F  8G IFFG  	G)&GGG IGG 	I&A&IIIII__main__z2Starting embedding server on http://127.0.0.1:8000z	127.0.0.1i@  )hostport)fastapir   r   r   pydanticr   sentence_transformersr   transformersr   whisperr9   appr
   r   r    r   
load_modelr?   postr)   rI   r   uvicornrunr   r   r   <module>rW      s    - -  5 !  	 i!9 !Y  , -./ " #   !"""6* * + (!l ! !< -.23i 5< 5< 5<p z	
>?GKK+D1 r   