o
    Ղi                     @   s.  d dl Z d dlZd dlmZmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZmZmZmZmZmZmZmZmZ G dd	 d	ejZe
  e
je jd
ddd eje gd dd edej edej edddZ e
!d e j"eej#ddgdgd e $e%dede%fddZ&e $e'dede'fddZ(e $e)dede)fddZ*e j+ej,d d!gd" e j+ej,d#d$gd" e j+ej,d%d&gd" e j+ej,d'd(gd" e j+ej,d)d*gd" e j+ej,d+d,gd" e j+ej,d-d.gd" e j+ej,d/d0gd" e j+ej,d1gd2 e -d3d4d5 Z.dS )6    N)FastAPIRequest)CORSMiddlewareJSONResponse)logger)settings)	tasksexpertsdatasetstools	websocket	sft_tasks	dpo_tasks	templatestraining_platformsc                   @   s   e Zd ZdejfddZdS )InterceptHandlerrecordc                 C   s   z	t |jj}W n ty   |j}Y nw tdd}}|r7|jj	t
jkr7|j}|d7 }|r7|jj	t
jks't j||jd||  d S )N      )depth	exception)r   level	levelnamename
ValueErrorlevelnosys	_getframef_codeco_filenamelogging__file__f_backoptexc_infolog
getMessage)selfr   r   framer    r*   :/lsinfo/ai/hellotax_ai/training_center/backend/app/main.pyemit   s   
 zInterceptHandler.emitN)__name__
__module____qualname__r!   	LogRecordr,   r*   r*   r*   r+   r      s    r   zE{time:YYYY-MM-DDTHH:mm:ss.SSSZ} | {level} | {name}:{line} | {message}INFOF)formatr   colorizeT)handlersr   forcezsqlalchemy.enginezuvicorn.accesszExpert Training Servicez1.0.0)titleversionz'Starting Expert Training Service v1.0.0*)allow_originsallow_credentialsallow_methodsallow_headersrequestexcc                       t ddt|idS )Ni  detailstatus_codecontentr   strr=   r>   r*   r*   r+   value_error_handler/      rG   c                    r?   )Ni  r@   rA   rD   rF   r*   r*   r+   permission_error_handler3   rH   rI   c                    s   t dddidS )Ni  r@   zInternal server errorrA   r   rF   r*   r*   r+   general_exception_handler7   s   rJ   z/api/v1/tasksr	   )prefixtagsz/api/v1/expertsr
   z/api/v1/datasetsr   z/api/v1/toolsr   z/api/v1/sft-tasksr   z/api/v1/dpo-tasksr   z/api/v1/templatesr   z/api/v1/training-platformsr   r   )rL   z/healthc                      s
   ddiS )Nstatushealthyr*   r*   r*   r*   r+   health_checkE   s   rO   )/r   r!   fastapir   r   fastapi.middleware.corsr   fastapi.responsesr   logurur   app.core.configr   
app.api.v1r	   r
   r   r   r   r   r   r   r   Handlerr   removeaddstdoutbasicConfig	getLoggersetLevelWARNINGappinfoadd_middlewareCORS_ORIGINSexception_handlerr   rG   PermissionErrorrI   	ExceptionrJ   include_routerroutergetrO   r*   r*   r*   r+   <module>   sZ    ,
