Devishetty100's picture
Update app.py
8ff539d verified
import gradio as gr
from transformers import pipeline, AutoTokenizer, AutoModelForSequenceClassification
import torch
MODEL_NAME = "Devishetty100/redmoon-gibberishdetective"
try:
# Try loading with pipeline first
classifier = pipeline(
"text-classification",
model=MODEL_NAME
)
except:
try:
# Fallback: Load components separately
tokenizer = AutoTokenizer.from_pretrained("distilbert-base-uncased")
model = AutoModelForSequenceClassification.from_pretrained(MODEL_NAME)
classifier = pipeline(
"text-classification",
model=model,
tokenizer=tokenizer,
device=0 if torch.cuda.is_available() else -1
)
except Exception as e:
raise gr.Error(f"Failed to load model: {str(e)}\n\nPlease ensure all model files exist in the repository.")
def predict(text):
try:
if not text.strip():
return {"Error": "Please enter some text"}
result = classifier(text)[0]
return {
"Prediction": result['label'],
"Confidence": f"{result['score']:.2%}"
}
except Exception as e:
return {"Error": str(e)}
with gr.Blocks(theme=gr.themes.Soft()) as demo:
gr.Markdown("""
# πŸ” Gibberish Detective
*Using model: {MODEL_NAME}*
""")
with gr.Row():
input_text = gr.Textbox(label="Input Text", placeholder="Enter text here...", lines=3)
output_json = gr.JSON(label="Results")
gr.Examples(
examples=[
["This is proper English"],
["Xkjsd hfkjshdf 9834 kjsdhf!"],
["Hello world"],
["Hfjsd kjsadf lkjsdf 1234!"]
],
inputs=input_text
)
input_text.submit(predict, inputs=input_text, outputs=output_json)
gr.Button("Analyze").click(predict, inputs=input_text, outputs=output_json)
if __name__ == "__main__":
demo.launch()