image-caption / streamlit_app.py
AnkitS1997's picture
added exception handling
177e69b
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.")