Spaces:
Sleeping
Sleeping
import gradio as gr | |
from PIL import Image | |
from io import BytesIO | |
import PIL | |
import numpy as np | |
import os | |
import json | |
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) | |
def sentence_builder(age, sex, skin_type, allergies, diet, file): | |
import index | |
print(age, sex, skin_type, allergies, diet) | |
response = index.predict(file) | |
predictions = response['prediction'] | |
prediction = np.array(predictions) | |
data = response | |
data["prediction"] = prediction | |
labels = ["Low", "Moderate", "Severe"] | |
show_prediction = np.zeros((4, 3)) | |
for in_, pred in enumerate(prediction): | |
show_prediction[in_] = pred | |
output1 = {labels[i]: float(show_prediction[0][i]) for i in range(3)} | |
output2 = {labels[i]: float(show_prediction[1][i]) for i in range(3)} | |
output3 = {labels[i]: float(show_prediction[2][i]) for i in range(3)} | |
output4 = {labels[i]: float(show_prediction[3][i]) for i in range(3)} | |
data['age'] = age | |
data['gender'] = sex | |
data['skin_type'] = skin_type | |
data['allergies'] = allergies | |
data['diet'] = diet | |
try: | |
response = index.recommendation(data) | |
content = response['choices'][0]['message']['content'] | |
return content, output1, output2, output3, output4 | |
except: | |
return "No recommendation found", output1, output2, output3, output4 | |
with gr.Blocks() as demo: | |
gr.Markdown("Flip text or image files using this demo.") | |
with gr.Row(): | |
with gr.Column(): | |
age = gr.Number(value=20, label="Age") | |
sex = gr.Radio(["Male", "Female", "Other"], label="Gender", info="Your Gender") | |
skin_type = gr.CheckboxGroup(["Oily", "Dry", "Normal"], label="Skin", info="Skin Type") | |
allergy = gr.Dropdown( | |
["benzoyl peroxide", "salicylic acid", "Sun-exposure", "Itching", "Swelling", "Redness"], | |
multiselect=True, label="Allergies", | |
info="Tell us your allergies and symptoms" | |
) | |
diet = gr.CheckboxGroup(["Veg", "Non-Veg",], label="Diet", info="Select your diet preference") | |
img = gr.Image(source="upload", type="pil", label="Face Image (with open eye)") | |
submit = gr.Button("Submit") | |
with gr.Tab("Model:Severity Prediction"): | |
chin = gr.Label(num_top_classes=3, label="Chin|Acne Level") | |
fh = gr.Label(num_top_classes=3, label="Fore Head|Acne Level") | |
lc = gr.Label(num_top_classes=3, label="Left Cheek|Acne Level") | |
rc = gr.Label(num_top_classes=3, label="Right Cheek|Acne Level") | |
with gr.Tab("Recommendation:Treatment Plan"): | |
html_output = gr.HTML('Recommendation will be shown here') | |
submit.click(sentence_builder, inputs=[age, sex, skin_type, allergy, diet, img], outputs=[html_output, rc, lc, chin, fh]) | |
if __name__ == "__main__": | |
demo.launch(server_name="0.0.0.0", server_port=7860) |