
    zKi                     <   S SK JrJrJr  S SKJr  S SKrS SKrS SKJ	r	  S SK
Jr  S SKJr  S SKr\" 5       rS SKrS SKrS rS r\R)                  S	5      \" S
5      \" S
5      \" S
5      \" S
5      \" S
5      \" S
5      \" S
5      \" S
5      \" S
5      4	S\S\S\S\S\S\S\S\S\S\4S jj5       rS SKJr  \R)                  S5      \" S
5      \" S
5      \" S
5      \" S
5      \" S
5      \" S
5      \" S
5      \" S
5      4S\S\S\S\S\S\S\S\S\4S jj5       rg)    )FastAPIFormHTTPException)JSONResponseN)generate_slide_content_document)generate_slide_content_youtube)generate_slide_content_htmlc                     [         R                  " U SSS9nUR                  S:X  a  UR                  $ [	        SSUR                   3S9e)NF<   )verifytimeout   i  zDocument not found, status: status_codedetail)requestsgetr   contentr   )urlresponses     G/var/www/eduai.edurigo.com/storigo/testing/storigo_creation_fast_api.pyfetch_document_with_curlr      sK    ||Cr:Hs"6RS[SgSgRh4ijj    c           
        #     [        X5        [        U5      n[        XX#XEXg5      I S h  vN n	[        SU S35        U	R	                  5       n
[        U
S9$  N,! [         aX  n[        R                  " S[        U5       35        [        S[        U5       3[        R                  " 5       S.SS9s S nA$ S nAff = f7f)	NzSlide content generated for z slides.r   Error generating content: Error: errordetails  r   r   )create_and_save_embeddingsmerge_all_faissgenerate_slide_contentprintdictr   	Exceptionloggingr   str	traceback
format_exc)split_documents	client_id
num_slidesnum_mcqsis_imageis_questionquestion_positionisGPUmerge_embeddingsslide_contentresponse_dataes               r   process_and_generate_responser9      s     
"?>*95 55ER\go  ~O  V  V,ZLAB &**,M22 V  
23q6(;<  'Ax0Y=Q=Q=ST
 	

sE   B?'A A+A B?A 
B<$AB71B<2B?7B<<B?z/generate-storigo-content.r.   r/   document_urlr1   document_typer2   r0   r3   r4   returnc	           
        #     US:X  a  [        SU 35        [        U5      n	[        S[        U	5       S35        [        R                  " SSS9 n
U
R                  U	5        U
R                  n[        SU 35        S S S 5         [        WXXcXWU5      I S h  vN nUR                  5       n[        US	9[        R                  " U5        $ US
:X  a=  [        SU 35        [        X XX5Xx5      I S h  vN nUR                  5       n[        US	9$ US:X  a=  [        SU 35        [        X XX5Xx5      I S h  vN nUR                  5       n[        US	9$ [        SSS9e! , (       d  f       N= f N! [        R                  " W5        f = f N NW! [         aX  n[         R"                  " S[%        U5       35        [        S[%        U5       3[&        R(                  " 5       S.SS9s S nA$ S nAff = f7f)NpdfzFetching document from: zDocument fetched, size: z bytesFz.pdf)deletesuffixzTemporary file saved at: r   youtubezProcessing YouTube URL: htmlzFetching HTML content from: i  z@Unsupported source type. Please use 'pdf', 'html', or 'youtube'.r   r   r   r   r!   r"   )r&   r   lentempfileNamedTemporaryFilewritenamer   r'   r   osremover   r	   r   r(   r)   r   r*   r+   r,   )r.   r/   r:   r1   r;   r2   r0   r3   r4   document_content	temp_filetemp_file_pathr6   r7   r8   s                  r   generate_storigo_contentrM   .   s    =
E!,\N;<7E,S1A-B,C6JK ,,E&IY 01!*1.1ABC J
*&EnV_mu  BM  bg  'h  !h - 2 2 4#M: 		.)i',\N;<"@Zdpx  HY  #a  aM)..0M66f$0?@"=lWamu  EV  #^  ^M)..0M66  C8z{{5 JI !h
 		.) a ^2  
23q6(;<  'Ax0Y=Q=Q=ST
 	

s   G2AF ,E<F E. E,E. 4F 
G2%F 0F	1F G2%F 3F4F G2
F 
E)%F ,E. .FF F 
G/AG*$G/%G2*G//G2)"generate_slide_content_from_promptz%/generate-storigo-content-from-promptpromptc           	      *  #     [        XXSS:H  XFU5      nUR                  5       n	[        U	S9$ ! [         aX  n
[        R
                  " S[        U
5       35        [        S[        U
5       3[        R                  " 5       S.SS9s S n
A
$ S n
A
ff = f7f)N   r   r   r   r   r!   r"   )	rN   r'   r   r(   r)   r   r*   r+   r,   )r.   rO   r/   r1   r2   r0   r3   r4   storigo_contentr7   r8   s              r   $generate_storigo_content_from_promptrS   |   s     
<VQYgh[hju  LQ  R (,,.M22  
23q6(;<  'Ax0Y=Q=Q=ST
 	

s1   B). B
BABBBBB)fastapir   r   r   fastapi.responsesr   rD   r   !generate_storigo_content_documentr    generate_storigo_content_youtuber   generate_storigo_content_htmlr	   rH   appr)   r+   r   r9   postr*   intrM   rS   rN    r   r   <module>r]      s   0 0 *   M K E 	i  k
2 
%&#Y3iS	IS	CyI"3icH
H
H
 H
 	H

 H
 H
 H
 H
 H
 H
 'H
V T
12#Ys)3iICyI"3ic$
$
$
 $
 	$

 $
 $
 $
 $
 $
 3$
r   