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", "
").replace(":", ":").replace("\n", "
") formatted_response = f"{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()