
    Xj
                        d dl mZ d dlmZm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mZ  e	e          Z e            Z G d d	e          Z G d
 de          Z G d de          Z G d de          Ze                    ded           ee           ee          fdedefd            Ze                    ded           ee           ee          fdedefd            Ze                    dee         d           ee           ee          fdedefd            Ze                    dee         d           ee           ee          fdedefd            ZdS )     )Literal)	APIRouterDepends)	BaseModelField)
get_logger)get_current_user)User)GpuRuntimeMonitoringServiceget_gpu_runtime_servicec                       e Zd ZU  edd          Zeed<    edd          Zeed<    edd          Zeed<    edd	          Z	eed
<    edd          Z
eed<   dS )GpuOverviewResponse.zTotal detected GPUs)descriptiontotalGpuCountzOnline GPU countonlineGpuCountzRunning model countrunningModelCountzAlert count
alertCountzSnapshot timestamp	updatedAtN)__name__
__module____qualname__r   r   int__annotations__r   r   r   r   str     6/lsinfo/ai/hellotax_ai/base_platform/app/api/v1/gpu.pyr   r      s         s0EFFFM3FFF%1CDDDNCDDD"U34IJJJsJJJeC];;;J;;;U3,@AAAIsAAAAAr   r   c                       e Zd ZU eed<   eed<   eed<   ed         ed<   eed<   eed<   eed<   eed	<   ee         ed
<   dS )GpuDeviceStatusResponseidnamehostName)onlinebusywarningofflinestatusmemoryUsedGbmemoryTotalGbmemoryUsagePercentutilizationPercentrunningModelNamesN)	r   r   r   r   r   r   floatr   listr   r   r   r   r      s         GGG
IIIMMM:;;;;Cy     r   r   c                   l    e Zd ZU eed<   eed<   eed<   ed         ed<   eed<   eed<   eed<   eed	<   d
S )RunningModelResponser    r!   version)runningloadingidlefailedr'   gpuIdgpuNamer(   	startedAtN)r   r   r   r   r   r   r-   r   r   r   r0   r0   &   sd         GGG
IIILLL:;;;;JJJLLLNNNNNr   r0   c                   F    e Zd ZU eed<   ee         ed<   ee         ed<   dS )GpuSnapshotResponseoverviewdevicesmodelsN)r   r   r   r   r   r.   r   r0   r   r   r   r:   r:   1   sB         !!!!)****%&&&&&&r   r:   z	/snapshotu   获取 GPU 监控快照)response_modelsummarycurrent_usergpu_servicec                 p    t                               d| j                    ~ |                                S )NzFetching GPU snapshot: user=)loggerinfor    get_snapshotr@   rA   s     r   get_gpu_snapshotrG   7   s6    
 KK@|@@AAA##%%%r   z	/overviewu   获取 GPU 监控总览c                 8    ~ |                                 d         S )Nr;   rE   rF   s     r   get_gpu_overviewrJ   A   s    
 	##%%j11r   z/devicesu   获取 GPU 设备状态c                 8    ~ |                                 d         S )Nr<   rI   rF   s     r   get_gpu_devicesrL   J   s    
 	##%%i00r   z/modelsu   获取运行中的模型c                 8    ~ |                                 d         S )Nr=   rI   rF   s     r   get_gpu_modelsrN   S   s    
 	##%%h//r   N)typingr   fastapir   r   pydanticr   r   common_loggingr   app.api.permissionsr	   app.models.userr
   +app.services.monitoring.gpu_runtime_servicer   r   r   rC   routerr   r   r0   r:   getrG   rJ   r.   rL   rN   r   r   r   <module>rX      s!         & & & & & & & & % % % % % % % % % % % % % % 0 0 0 0 0 0                   
 
H			B B B B B) B B B	! 	! 	! 	! 	!i 	! 	! 	!    9   ' ' ' ' ') ' ' ' K(;E^__ !122/6w7N/O/O& &&,& & & `_& K(;E^__ !122/6w7N/O/O2 22,2 2 2 `_2 Jt,C'DNghh !122/6w7N/O/O1 11,1 1 1 ih1 Id+?&@Jdee !122/6w7N/O/O0 00,0 0 0 fe0 0 0r   