import streamlit as st from transformers import pipeline from PIL import Image import requests # Define pipelines pipe = pipeline("summarization", model="google/pegasus-xsum") agepipe = pipeline("image-classification", model="dima806/facial_age_image_detection") imgpipe = pipeline("zero-shot-image-classification", model="openai/clip-vit-base-patch32") emopipe = pipeline("text-classification", model="michellejieli/emotion_text_classifier") transpipe = pipeline("translation_en_to_fr") st.title("NLP APP") option = st.sidebar.selectbox( "Choose a task", ("Summarization", "Age Detection", "Emotion Detection", "Image Classification", "Translation") ) if option == "Summarization": st.title("Text Summarization") text = st.text_area("Enter text to summarize") if st.button("Summarize"): if text: st.write("Summary:", pipe(text)[0]["summary_text"]) else: st.write("Please enter text to summarize.") elif option == "Age Detection": st.title("Welcome to age detection") uploaded_files = st.file_uploader("Choose an image file", type="jpg") if uploaded_files is not None: image = Image.open(uploaded_files) st.write("Detected age is ", agepipe(image)[0]["label"]) elif option == "Image Classification": st.title("Welcome to object detection") uploaded_file = st.file_uploader("Choose an image file", type=["jpg", "jpeg", "png"]) text = st.text_area("Enter possible class names (comma-separated)") if st.button("Submit"): if uploaded_file is not None and text: candidate_labels = [t.strip() for t in text.split(',')] image = Image.open(uploaded_file) st.image(image, caption="Uploaded Image", use_column_width=True) classification_result = imgpipe(image, candidate_labels=candidate_labels) for result in classification_result: st.write(f"Label: {result['label']}, Score: {result['score']}") else: st.write("Please upload an image file and enter class names.") elif option == "Emotion Detection": st.title("Detect your emotion") text = st.text_area("Enter your text") if st.button("Submit"): if text: emotion = emopipe(text)[0]["label"] if emotion == "sadness": st.write("Emotion : ", emotion, "😢") elif emotion == "joy": st.write("Emotion : ", emotion, "😃") elif emotion == "fear": st.write("Emotion : ", emotion, "😨") elif emotion == "anger": st.write("Emotion : ", emotion, "😡") elif emotion == "neutral": st.write("Emotion : ", emotion, "😐") elif emotion == "disgust": st.write("Emotion : ", emotion, "🤢") elif emotion == "surprise": st.write("Emotion : ", emotion, "😲") else: st.write("Please enter text.") elif option == "Translation": st.title("Text Translation") text = st.text_area("Enter text to translate from English to French") if st.button("Translate"): if text: translation = transpipe(text)[0]["translation_text"] st.write("Translation:", translation) else: st.write("Please enter text to translate.") else: st.title("None")