ash12321's picture
Update app.py
c703015 verified
import gradio as gr
from models import text_model_1, text_label_map_1, text_model_2, text_label_map_2
from models import image_model_1, image_label_map_1, image_model_2, image_label_map_2
from models import video_model
# Text classification function (combines two text models)
def classify_text(input_text):
results = []
for model, label_map in [(text_model_1, text_label_map_1), (text_model_2, text_label_map_2)]:
res = model(input_text)[0]
label = label_map.get(res['label'], res['label'])
score = res['score'] * 100
results.append(f"{label} ({score:.2f}%)")
return "\n".join(results)
# Image classification function (combines two image models)
def classify_image(image):
results = []
for model, label_map in [(image_model_1, image_label_map_1), (image_model_2, image_label_map_2)]:
res = model(image)[0]
label = label_map.get(res['label'], res['label'])
score = res['score'] * 100
results.append(f"{label} ({score:.2f}%)")
return "\n".join(results)
# Video classification placeholder
def classify_video(video_file):
return video_model(video_file)
# Gradio UI
with gr.Blocks() as demo:
gr.Markdown("## Multi-Modal AI Detection Tool")
with gr.Tab("Text Detection"):
text_input = gr.Textbox(label="Enter text")
text_output = gr.Textbox(label="Predictions")
text_btn = gr.Button("Classify Text")
text_btn.click(classify_text, inputs=text_input, outputs=text_output)
with gr.Tab("Image Detection"):
image_input = gr.Image(type="pil")
image_output = gr.Textbox(label="Predictions")
image_btn = gr.Button("Classify Image")
image_btn.click(classify_image, inputs=image_input, outputs=image_output)
with gr.Tab("Video Detection"):
video_input = gr.File(label="Upload video")
video_output = gr.Textbox(label="Prediction")
video_btn = gr.Button("Classify Video")
video_btn.click(classify_video, inputs=video_input, outputs=video_output)
demo.launch()