myfirstspace / app.py
lostspace003's picture
Upload 2 files
0534365 verified
import gradio as gr
from transformers import pipeline
# --------- Load Models ---------
sentiment_model = pipeline("sentiment-analysis")
summarizer = pipeline("summarization")
qa_model = pipeline("question-answering")
translator = pipeline("translation_en_to_fr")
zero_shot = pipeline("zero-shot-classification")
# --------- Pipeline Functions ---------
def run_app(task, text, context="", labels=""):
if task == "Sentiment Analysis":
result = sentiment_model(text)[0]
return f"{result['label']} (confidence: {round(result['score'], 3)})"
elif task == "Text Summarization":
result = summarizer(
text,
max_length=120,
min_length=30,
do_sample=False
)[0]
return result["summary_text"]
elif task == "Question Answering":
if not context:
return "Please provide a context passage."
result = qa_model(question=text, context=context)
return result["answer"]
elif task == "English → French Translation":
result = translator(text)[0]
return result["translation_text"]
elif task == "Zero-Shot Classification":
if not labels:
return "Please enter candidate labels (comma-separated)."
label_list = [x.strip() for x in labels.split(",")]
result = zero_shot(text, candidate_labels=label_list)
lines = [
f"{label}: {round(score, 3)}"
for label, score in zip(result["labels"], result["scores"])
]
return "\n".join(lines)
return "Select a valid task."
# --------- Gradio UI ---------
with gr.Blocks(title="Hugging Face AI Playground") as demo:
gr.Markdown(
"## 🤗 Hugging Face AI App\n"
"Select a task and run inference using pretrained Transformer models."
)
task = gr.Dropdown(
choices=[
"Sentiment Analysis",
"Text Summarization",
"Question Answering",
"English → French Translation",
"Zero-Shot Classification",
],
value="Sentiment Analysis",
label="Choose a Task"
)
text = gr.Textbox(lines=4, label="Input Text")
context = gr.Textbox(
lines=4,
label="Context (only for Question Answering)",
visible=True
)
labels = gr.Textbox(
label="Candidate Labels (comma-separated, for Zero-Shot Classification)"
)
output = gr.Textbox(label="Model Output")
run_button = gr.Button("Run")
run_button.click(
fn=run_app,
inputs=[task, text, context, labels],
outputs=output
)
demo.launch()