Writing-Assistant / src /streamlit_app.py
adan012's picture
Update src/streamlit_app.py
a582430 verified
raw
history blame
2.19 kB
import streamlit as st
from transformers import pipeline
from PIL import Image
st.set_page_config(page_title="πŸ€– AI Toolbox", layout="centered")
st.title("πŸ€— Hugging Face Streamlit App")
# Sidebar for model choice
task = st.sidebar.radio("Choose a Task", ["Text Generation", "Visual QA", "Text Summarization"])
# ----------------- TEXT GENERATION -----------------
if task == "Text Generation":
st.subheader("πŸ“ Text Generation (GPT-2)")
prompt = st.text_area("Enter a prompt", "Once upon a time in a land far away,")
if st.button("Generate Text"):
with st.spinner("Generating..."):
generator = pipeline("text-generation", model="openai-community/gpt2")
output = generator(prompt, max_length=100, num_return_sequences=1)
st.success("Generated Text:")
st.write(output[0]['generated_text'])
# ----------------- VISUAL QUESTION ANSWERING -----------------
elif task == "Visual QA":
st.subheader("πŸ–ΌοΈ Visual Question Answering")
uploaded_image = st.file_uploader("Upload an image", type=["jpg", "jpeg", "png"])
question = st.text_input("Ask a question about the image", "What colors are used in this image?")
if uploaded_image and question:
image = Image.open(uploaded_image)
st.image(image, caption="Uploaded Image", use_column_width=True)
if st.button("Get Answer"):
with st.spinner("Answering..."):
vqa = pipeline("visual-question-answering", model="dandelin/vilt-b32-finetuned-vqa")
result = vqa(image, question)
st.success(f"Answer: {result[0]['answer']}")
# ----------------- TEXT SUMMARIZATION -----------------
elif task == "Text Summarization":
st.subheader("πŸ“š Text Summarization")
input_text = st.text_area("Paste long text here", height=200)
if st.button("Summarize"):
with st.spinner("Summarizing..."):
summarizer = pipeline("summarization", model="sshleifer/distilbart-cnn-12-6")
summary = summarizer(input_text, max_length=130, min_length=30, do_sample=False)
st.success("Summary:")
st.write(summary[0]['summary_text'])