snortdapot's picture
Upload folder using huggingface_hub
112df85 verified
Raw
History Blame Contribute Delete
1.25 kB
import gradio as gr
from optimum.onnxruntime import ORTModelForSequenceClassification
from transformers import AutoTokenizer
import numpy as np
model_id = "snortdapot/depression-distilbert-onnx"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = ORTModelForSequenceClassification.from_pretrained(
model_id,
file_name="model_quantized.onnx"
)
ID_TO_LABEL = {0: "Normal", 1: "Mild", 2: "Severe"}
def classify(text):
if not text or not text.strip():
return {"Normal": 0.0, "Mild": 0.0, "Severe": 0.0}
inputs = tokenizer(text[:512], return_tensors="np", truncation=True, padding=True)
outputs = model(**{k: v for k, v in inputs.items()})
logits = outputs.logits[0]
# softmax
exp_logits = np.exp(logits - np.max(logits))
probs = exp_logits / exp_logits.sum()
result = {}
for i, prob in enumerate(probs):
result[ID_TO_LABEL[i]] = float(round(prob, 4))
return result
demo = gr.Interface(
fn=classify,
inputs=gr.Textbox(label="Text", placeholder="Enter a comment..."),
outputs=gr.Label(label="Depression Risk"),
title="Depression Risk Classifier",
description="DistilBERT fine-tuned for depression risk classification (Normal/Mild/Severe)",
)
demo.launch()