Update app.py
Browse files
app.py
CHANGED
@@ -2,11 +2,13 @@
|
|
2 |
import gradio as gr
|
3 |
from classifier import classify_toxic_comment
|
4 |
|
5 |
-
# Clear function for resetting the UI
|
6 |
def clear_inputs():
|
|
|
|
|
|
|
|
|
7 |
return "", 0, "", [], "", "", "", "", 0, "", "", "", "", "", "", "", ""
|
8 |
|
9 |
-
# Custom CSS for styling
|
10 |
custom_css = """
|
11 |
/* General Styling */
|
12 |
body {
|
@@ -121,9 +123,7 @@ h3 {
|
|
121 |
}
|
122 |
"""
|
123 |
|
124 |
-
# Main UI function
|
125 |
with gr.Blocks(theme=gr.themes.Soft(), css=custom_css) as demo:
|
126 |
-
# Header Section
|
127 |
gr.Markdown(
|
128 |
"""
|
129 |
# Toxic Comment Classifier
|
@@ -131,7 +131,6 @@ with gr.Blocks(theme=gr.themes.Soft(), css=custom_css) as demo:
|
|
131 |
"""
|
132 |
)
|
133 |
|
134 |
-
# Input Section
|
135 |
with gr.Row():
|
136 |
with gr.Column(scale=4, min_width=600):
|
137 |
comment_input = gr.Textbox(
|
@@ -154,9 +153,7 @@ with gr.Blocks(theme=gr.themes.Soft(), css=custom_css) as demo:
|
|
154 |
label="Try these examples:"
|
155 |
)
|
156 |
|
157 |
-
# Output Section
|
158 |
with gr.Row():
|
159 |
-
# Left Column: Original Comment Metrics
|
160 |
with gr.Column(scale=1, min_width=400):
|
161 |
gr.Markdown("### Original Comment Analysis")
|
162 |
prediction_output = gr.Textbox(label="Prediction", placeholder="Prediction will appear here...")
|
@@ -172,7 +169,6 @@ with gr.Blocks(theme=gr.themes.Soft(), css=custom_css) as demo:
|
|
172 |
bias_output = gr.Textbox(label="Bias Score", placeholder="Bias score will appear here...")
|
173 |
threshold_display = gr.HTML()
|
174 |
|
175 |
-
# Right Column: Paraphrased Output (if Toxic)
|
176 |
with gr.Column(scale=1, min_width=400):
|
177 |
with gr.Accordion("Paraphrased Output (if Toxic)", open=False):
|
178 |
paraphrased_comment_output = gr.Textbox(label="Paraphrased Comment", placeholder="Paraphrased comment will appear here if the input is toxic...")
|
@@ -194,7 +190,6 @@ with gr.Blocks(theme=gr.themes.Soft(), css=custom_css) as demo:
|
|
194 |
rouge_scores_output = gr.Textbox(label="ROUGE Scores", placeholder="ROUGE scores will appear here...")
|
195 |
entailment_score_output = gr.Textbox(label="Entailment Score (Factual Consistency)", placeholder="Entailment score will appear here...")
|
196 |
|
197 |
-
# History and Feedback Sections
|
198 |
with gr.Row():
|
199 |
with gr.Column(scale=1):
|
200 |
with gr.Accordion("Prediction History", open=False):
|
@@ -265,7 +260,6 @@ with gr.Blocks(theme=gr.themes.Soft(), css=custom_css) as demo:
|
|
265 |
)
|
266 |
entailment_score_display = f"{entailment_score} (Scale: 0 to 1, higher indicates better consistency)" if entailment_score is not None else "N/A"
|
267 |
|
268 |
-
# Add visual indicator to the prediction
|
269 |
prediction_class = "toxic-indicator" if "Toxic" in prediction else "nontoxic-indicator"
|
270 |
prediction_html = f"<span class='{prediction_class}' style='color: {color}; font-size: 20px; font-weight: bold;'>{prediction}</span>"
|
271 |
|
@@ -290,7 +284,7 @@ with gr.Blocks(theme=gr.themes.Soft(), css=custom_css) as demo:
|
|
290 |
"Calculating... <span class='loading'>⏳</span>", "Calculating... <span class='loading'>⏳</span>",
|
291 |
"Calculating... <span class='loading'>⏳</span>", "Calculating... <span class='loading'>⏳</span>",
|
292 |
"Calculating... <span class='loading'>⏳</span>", "Calculating... <span class='loading'>⏳</span>"
|
293 |
-
),
|
294 |
inputs=[],
|
295 |
outputs=[
|
296 |
prediction_output, confidence_output, label_display, history_output, threshold_display, threshold_display,
|
|
|
2 |
import gradio as gr
|
3 |
from classifier import classify_toxic_comment
|
4 |
|
|
|
5 |
def clear_inputs():
|
6 |
+
"""
|
7 |
+
Reset all UI input and output fields to their default values.
|
8 |
+
Returns a tuple of empty or default values for all UI components.
|
9 |
+
"""
|
10 |
return "", 0, "", [], "", "", "", "", 0, "", "", "", "", "", "", "", ""
|
11 |
|
|
|
12 |
custom_css = """
|
13 |
/* General Styling */
|
14 |
body {
|
|
|
123 |
}
|
124 |
"""
|
125 |
|
|
|
126 |
with gr.Blocks(theme=gr.themes.Soft(), css=custom_css) as demo:
|
|
|
127 |
gr.Markdown(
|
128 |
"""
|
129 |
# Toxic Comment Classifier
|
|
|
131 |
"""
|
132 |
)
|
133 |
|
|
|
134 |
with gr.Row():
|
135 |
with gr.Column(scale=4, min_width=600):
|
136 |
comment_input = gr.Textbox(
|
|
|
153 |
label="Try these examples:"
|
154 |
)
|
155 |
|
|
|
156 |
with gr.Row():
|
|
|
157 |
with gr.Column(scale=1, min_width=400):
|
158 |
gr.Markdown("### Original Comment Analysis")
|
159 |
prediction_output = gr.Textbox(label="Prediction", placeholder="Prediction will appear here...")
|
|
|
169 |
bias_output = gr.Textbox(label="Bias Score", placeholder="Bias score will appear here...")
|
170 |
threshold_display = gr.HTML()
|
171 |
|
|
|
172 |
with gr.Column(scale=1, min_width=400):
|
173 |
with gr.Accordion("Paraphrased Output (if Toxic)", open=False):
|
174 |
paraphrased_comment_output = gr.Textbox(label="Paraphrased Comment", placeholder="Paraphrased comment will appear here if the input is toxic...")
|
|
|
190 |
rouge_scores_output = gr.Textbox(label="ROUGE Scores", placeholder="ROUGE scores will appear here...")
|
191 |
entailment_score_output = gr.Textbox(label="Entailment Score (Factual Consistency)", placeholder="Entailment score will appear here...")
|
192 |
|
|
|
193 |
with gr.Row():
|
194 |
with gr.Column(scale=1):
|
195 |
with gr.Accordion("Prediction History", open=False):
|
|
|
260 |
)
|
261 |
entailment_score_display = f"{entailment_score} (Scale: 0 to 1, higher indicates better consistency)" if entailment_score is not None else "N/A"
|
262 |
|
|
|
263 |
prediction_class = "toxic-indicator" if "Toxic" in prediction else "nontoxic-indicator"
|
264 |
prediction_html = f"<span class='{prediction_class}' style='color: {color}; font-size: 20px; font-weight: bold;'>{prediction}</span>"
|
265 |
|
|
|
284 |
"Calculating... <span class='loading'>⏳</span>", "Calculating... <span class='loading'>⏳</span>",
|
285 |
"Calculating... <span class='loading'>⏳</span>", "Calculating... <span class='loading'>⏳</span>",
|
286 |
"Calculating... <span class='loading'>⏳</span>", "Calculating... <span class='loading'>⏳</span>"
|
287 |
+
),
|
288 |
inputs=[],
|
289 |
outputs=[
|
290 |
prediction_output, confidence_output, label_display, history_output, threshold_display, threshold_display,
|