o
    ^R{i6                  
   @   sT  d dl Z d dlZd dlZd dlZd dlZd dlmZmZmZm	Z	m
Z
 ejejd edZd dlmZmZmZmZ d dlmZ d dlmZmZmZmZ zd dlmZ W n! eyu   d dlZej ej!ej"e# d dlmZ Y nw G d	d
 d
eZ$G dd deZ%eddddZ&e&j'edgddgdgd e&j(de%dde$fddZ)dS )    N)DictListAnyOptionalUnion)levelresponse_iq_api)FastAPIHTTPExceptionBackgroundTasksstatus)CORSMiddleware)	BaseModelField	validatorHttpUrl)analyze_responsec                   @   s6   e Zd ZU eed< eed< eed< dZee ed< dS )ResponseIQRequestquestionpredefinedAnswer
userAnswerN	userVoice)__name__
__module____qualname__str__annotations__r   r    r   r   H/var/www/eduai.edurigo.com/responseiq/production/response_iq_fast_api.pyr   !   s
   
 r   c                   @   sB   e Zd ZU eed< eed< eed< dZee ed< ee ed< dS )ResponseIQResponse
matchScore
comparisonbehavioralAnalysisNtonalAnalysisvisuals)	r   r   r   intr   r   r#   r   r   r   r   r   r   r   '   s   
 r   zResponse Iq APIzAPI for response iq + GPUz1.0.2)titledescriptionversion*T)allow_originsallow_credentialsallow_methodsallow_headersz/response_iq_data)response_modelpayloadc                    sT   t d| jdd  d t| j| j| j| jd}d|v r(ttj	|d d|S )z
    Analyzes the user's answer against a predefined answer.
    Performs text analysis using LLM and tonal analysis if audio is provided.
    zReceived request for question: N   z...)r   predefined_answeruser_answeruser_voice_urlerror)status_codedetail)
loggerinfor   r   r   r   r   r
   r   HTTP_500_INTERNAL_SERVER_ERROR)r/   analysis_resultr   r   r   response_iq_data_endpoint?   s   
r;   )*
subprocessjsontempfileosloggingtypingr   r   r   r   r   basicConfigINFO	getLoggerr7   fastapir	   r
   r   r   fastapi.middleware.corsr   pydanticr   r   r   r   response_iq_analysisr   ImportErrorsyspathappenddirnameabspath__file__r   r   appadd_middlewarepostr;   r   r   r   r   <module>   sD    


