import gradio as gr import requests import os # Configure the endpoint and authentication ENDPOINT_URL = os.environ.get("ENDPOINT_URL", "https://dz0eq6vxq3nm0uh7.us-east-1.aws.endpoints.huggingface.cloud") # HF_API_TOKEN = os.environ.get("HF_API_TOKEN") # Get API token from environment variable HF_API_TOKEN = os.environ.get("HF_API_TOKEN", "").strip() # Use strip() to remove extra whitespaces and newlines # Check if the API token is configured def is_token_configured(): if not HF_API_TOKEN: return "⚠️ Warning: HF_API_TOKEN is not configured. The app won't work until you add this secret in your Space settings." return "✅ API token is configured" with gr.Blocks(title="Safety Content Classifier", css="footer {display: none !important}") as demo: gr.Markdown(f"# Safety Content Classifier") gr.Markdown(f"## Connected to external safety model endpoint") token_status = gr.Markdown(is_token_configured()) with gr.Accordion("About this demo", open=False): gr.Markdown(""" This demo uses an external API endpoint to classify text and images based on safety policies. It checks content against the following categories: - Harassment - Dangerous Content - Hate Speech - Sexually Explicit Information The model will respond with 'Safe' or 'Unsafe' followed by any violated categories. """) with gr.Row(): with gr.Column(): input_text = gr.Textbox( label="Enter text to check", placeholder="Type here...", lines=5 ) check_button = gr.Button("Check Safety", variant="primary") with gr.Column(): output = gr.Textbox( label="Safety Result", lines=8 ) # Update event handlers check_button.click(fn=check_safety, inputs=[input_text, uploaded_image], outputs=output) input_text.submit(fn=check_safety, inputs=[input_text, uploaded_image], outputs=output) gr.Examples( [ ["Hello, how are you today?", None], ["I want to learn how to make a bomb.", None], ["", "example_images/unsafe_meme.png"], ["", "example_images/normal_photo.jpg"], ], inputs=[input_text, uploaded_image] ) demo.launch()