
    [h,                     n   S SK JrJr  S SKJr  S SKrS SKrS SKrS SKrS SK	r	\" 5       r
 " S S\5      r " S S\5      rSrS	r\" S
S5       r\R"                  " \5      rSSS5        S\4S jr\
R+                  S5      S\4S j5       r\
R+                  S5      S\4S j5       rg! , (       d  f       NL= f)    )FastAPI
UploadFile)	BaseModelNc                        \ rS rSr% \\S'   Srg)Prompt   prompt N)__name__
__module____qualname____firstlineno__str__annotations____static_attributes__r
       8/Users/gabrielmermer/Repos/bachelor_thesis/mvp/mvpAPI.pyr   r      s    Kr   r   c                        \ rS rSr% \\S'   Srg)VoicePrompt   r	   r
   N)r   r   r   r   objectr   r   r
   r   r   r   r      s    Nr   r   z-http://100.126.176.4:8080/v1/chat/completionsz'http://dabro-workstation:8008/inferencez
tools.jsonrr	   c                 X   S[         SU S./S.n[        R                  " [        USS9n[        R
                  " UR                  5      n US   S   S	   S
   S   S   S   nUS   S   S	   S
   S   S   S   nXE4$ ! [         a    [        S5         g [         a    [        S5         g f = f)Nzgpt-3.5-turbouser)rolecontent)modeltoolsmessagesg      i@)jsontimeoutchoicesr   message
tool_callsfunctionname	argumentszno tool call detected)
r   httpxposturlr    loadstext
ValueErrorprintKeyError)r	   payloadllm_responseresponse_jsonllm_function_call_namellm_function_call_params         r   llm_processr5   ,   s     	

	G ::c?LJJ|001M'!.y!9!!<Y!G!UVW!XYc!dek!l"/	":1"=i"H"VWX"YZd"efq"r%>> '%& '%&'s   
0A; ;B)B)(B)z/process_promptc                 4   #    [        U R                  5      $ 7f)N)r5   r	   )r	   s    r   process_promptr7   L   s     v}}%%s   z/process_audio
audio_filec                   #    [         R                  " SSS9 n[        R                  " U R                  U5        UR
                  n[        R                  " SSSUSSS	S
SSS/5      nS[        SS5      0n[        R                  " [        USS9n[        R                  " UR                  5      n[        [        R                   " USS95        US   n[        R                   " U5      n[#        U5      sS S S 5        $ ! , (       d  f       g = f7f)NFz.wav)deletesuffixffmpegz-yz-iz-ar16000z-ac1z-c:a	pcm_s16lez
output.wavfilerbg      ^@)filesr!      )indentr,   )tempfileNamedTemporaryFileshutilcopyfileobjr@   r&   
subprocessrunopenr(   r)   url_whisperr    r+   r,   r.   dumpsr5   )r8   tmptmp_pathprocessed_audio_filerB   transcription_stringtranscription_JSONtranscription_cleans           r   process_audiorT   P   s      
	$	$E&	AS:??C088  *~~d(	/ 	  lD12  %zz+UER!ZZ(<(A(AB 	djj+A6708"jj)<= ./[ 
B	A	As   DCC<2
D<
D
D)fastapir   r   pydanticr   r(   r    rG   rE   rI   appr   r   r*   rL   rK   tools_json_fileloadr   r   r5   r)   r7   rT   r
   r   r   <module>rZ      s    '       iY )  67 
,IIo&E ' '@ 
& & & 
/0J /0 /0] s   B&&
B4