3
f\	                 @   s  d dl mZmZmZmZmZmZ d dlZd dl	Z
d dlmZ d dlZd dlmZmZmZ d dlZd dlZd dlZd dlmZ d dlmZ eeZde_ee d dlZd dlZdejd	< ej  a!d
d Z"ej#j$j%e"  eda&edZ'ej(d dd Z)ej(ddd Z*ej(ddd Z+ej(ddddddgddd Z,ej(d dddddgdd!d" Zej(d#d$d% Z-ed&krej.ddd' dS )(    )Flaskredirecturl_forrequestrender_templatesend_from_directoryN)Image)predict_imageload_model_h5get_class_names)Cache)CORST2ZTF_CPP_MIN_LOG_LEVELc              C   s$   t j } d| j_d| j_t j| dS )Ng?T)config)tfZConfigProtoZgpu_optionsZper_process_gpu_memory_fractionZallow_growthSession)r    r   -/var/www/html/image_classification/api/api.pyget_session   s    r   zD/var/www/html/models/model1/Concat_VGG16_64_100_0_224_adam_0.0001.h5z+/var/www/html/models/model1/class_names.csv/c               C   s   dS )NZStartedr   r   r   r   r   start#   s    r   z/healthcheckc               C   s   dS )Npingr   r   r   r   r   r   &   s    r   z/uploadc               C   s   dS )Nz<!DOCTYPE html><html><body><form action="/api" method="post" enctype="multipart/form-data">Select image to upload:<input type="file" name="image" id="image"><input type="submit" value="Upload Image" name="submit"></form></body></html>r   r   r   r   r   upload*   s    r   z/echoGETPOSTPATCHPUTDELETE)methodsc               C   sJ   t jdkrdS t jdkrdS t jdkr*dS t jdkr8dS t jd	krFd
S d S )Nr   z
ECHO: GET
r   zECHO: POST
r   zECHO: PACTH
r   z
ECHO: PUT
r   zECHO: DELETE)r   methodr   r   r   r   api_echo.   s    




r    z/apic              C   s2   t jtjd j} | jd} ttt| }t	j
|S )NZimageRGB)r   openr   filesstreamconvertr	   modelclass_namesjsondumps)img
predictionr   r   r   predict@   s    
r,   z/inputc        	      C   s   t j  tj } dtjkrztjjd}d}d|i}tjj|d |}tjj	|}t
j|}|jd}ttt|}tj|S d}t
j|}|jd}ttt|}tj|S | j  W d Q R X d S )NfilenamezZMozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7z
User-Agentr!   z3/var/www/html/image_classification/images/49173.jpg)graphZ
as_defaultr   r   r   argsgeturllibZRequestZurlopenr   r"   r%   r	   r&   r'   r(   r)   close)	ZsessZ	image_urlZ
user_agentZheadersZrequest_imageZresponse_datar*   r+   Z
myfilenamer   r   r   renderG   s$    







r3   __main__)debugZuse_reloader)/Zflaskr   r   r   r   r   r   Zurllib.requestr1   ZnumpyZnpZPILr   Zrequestsr,   r	   r
   r   sysosr(   Zflask_cachingr   Z
flask_corsr   __name__apir5   ZkerasZ
tensorflowr   environZget_default_graphr.   r   ZbackendZtensorflow_backendZset_sessionr&   r'   Zrouter   r   r   r    r3   runr   r   r   r   <module>   s:    

  
