Spaces:
Runtime error
Runtime error
import gradio as gr | |
from gradio_client import Client | |
import matplotlib.pyplot as plt | |
import numpy as np | |
import io | |
from PIL import Image | |
client = Client("https://duchaba-friendly-text-moderation.hf.space/--replicas/gffry/") | |
def moderate_text(text, safer_value): | |
result = client.predict( | |
text, | |
safer_value, | |
api_name="/censor_me" | |
) | |
# Assuming 'result' contains moderation categories and their respective counts | |
categories = result.get("categories", {"Safe": 1, "Unsafe": 1}) # Example structure | |
labels = list(categories.keys()) | |
sizes = list(categories.values()) | |
# Generate a pie chart | |
fig, ax = plt.subplots() | |
ax.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90) | |
ax.axis('equal') # Equal aspect ratio ensures that pie is drawn as a circle. | |
ax.set_title('Moderation Result Distribution') | |
# Save plot to a bytes buffer | |
buf = io.BytesIO() | |
plt.savefig(buf, format='png') | |
buf.seek(0) | |
# Convert bytes buffer to PIL Image | |
plot_image = Image.open(buf) | |
return result, plot_image | |
# Define the Gradio interface | |
demo = gr.Interface( | |
fn=moderate_text, | |
inputs=[ | |
gr.Textbox(label="Enter Text:", placeholder="Type your text here...", lines=5), | |
gr.Slider(minimum=0.005, maximum=0.1, value=0.005, label="Personalize Safer Value: (larger value is less safe)") | |
], | |
outputs=[gr.Textbox(label="Moderated Text:", lines=5), gr.Image(type="pil", label="Moderation Pie Chart")], | |
title="Friendly Text Moderator", | |
description="Enter text to be moderated and adjust the safer value to see how it affects the moderation.", | |
theme="compact" | |
) | |
# Customize the CSS | |
custom_css = """ | |
body { | |
background-color: #f5f5f5; | |
font-family: Arial, sans-serif; | |
} | |
.gradio-container { | |
max-width: 800px; | |
margin: auto; | |
padding: 20px; | |
background-color: white; | |
border: 1px solid #ddd; | |
border-radius: 8px; | |
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); | |
} | |
.gr-button { | |
background-color: #4CAF50; | |
color: white; | |
} | |
.gr-button:hover { | |
background-color: #45a049; | |
} | |
""" | |
# Add the custom CSS to the Gradio app | |
demo.css = custom_css | |
# Launch the app | |
demo.launch() | |