image-caption / streamlit_app.py
AnkitS1997's picture
added exception handling
177e69b
raw
history blame
1.47 kB
import streamlit as st
import requests
from PIL import Image, UnidentifiedImageError
from transformers import AutoProcessor, Blip2ForConditionalGeneration
import torch
import io
st.title("Image Captioning with Fine-Tuned BLiPv2 Model")
uploaded_file = st.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"])
if uploaded_file is not None:
try:
image = Image.open(uploaded_file)
st.image(image, caption="Uploaded Image", use_column_width=True)
try:
files = {"file": uploaded_file.getvalue()}
print("Sending API request")
response = requests.post("http://0.0.0.0:8502/generate-caption/", files=files)
caption = response.json().get("caption")
except requests.exceptions.RequestException as e:
st.error(f"An error occurred while making the API request: {str(e)}")
caption = "Error generating caption"
except ValueError as e:
st.error(f"An error occurred while parsing the API response: {str(e)}")
caption = "Error generating caption"
st.write("Generated Caption:")
st.write(f"**{caption}**")
except UnidentifiedImageError:
st.error("The uploaded file is not a valid image. Please upload a JPG, JPEG, or PNG file.")
except Exception as e:
st.error(f"An unexpected error occurred: {str(e)}")
else:
st.write("Please upload an image to generate a caption.")