Image-Chat / app.py
sohoso's picture
Update app.py
34fbb5a verified
raw
history blame
1.53 kB
import google.generativeai as genai
import gradio as gr
import numpy as np
import PIL.Image
import io
genai.configure(api_key="AIzaSyAj-b3sO_wUguMdpXWScxKzMHxb8C5cels")
def ImageChat(image, prompt):
# Check image file and convert to a PIL Image object
if isinstance(image, np.ndarray):
img = PIL.Image.fromarray(image)
else:
try:
img = PIL.Image.open(image)
except (AttributeError, IOError) as e:
return f"Invalid image provided. Please provide a valid image file. Error: {e}"
# Load model
model = genai.GenerativeModel("gemini-pro-vision")
# Combine the provided prompt with the custom prompt
combined_prompt = f"{prompt}\n\n{custom_prompt}"
# Generate response
try:
response = model.generate_content([combined_prompt, img])
if not response or not response.text:
return "No valid response received. The response might have been blocked."
# Add rich formatting to the output
formatted_response = response.text.replace("\n", "<br>").replace(":", ":</b>").replace("\n", "<br><b>")
formatted_response = f"<b>{formatted_response}"
return formatted_response
except ValueError as e:
return f"Error in generating response: {e}"
app = gr.Interface(
fn=ImageChat,
inputs=[gr.Image(label="Upload Stock Chart Image"), gr.Text(label="Prompt")],
outputs=gr.HTML(label="Analysis Response"),
title="Stock Chart Analysis",
theme=gr.themes.Soft()
)
app.launch()