LEXPRESA / app.py
sandrocalzada's picture
Update app.py
9a1c304 verified
raw
history blame
1.71 kB
import google.generativeai as genai
import gradio as gr
import numpy as np
import PIL.Image
import pandas as pd
genai.configure(api_key="AIzaSyA7tPavobVN5_3-BJ0qhFT5HVjO4V19QWk")
def ImageChat(image):
# Configuración de la personalidad del sistema
system_prompt = "Eres un asistente que analiza imágenes e intenta siempre dar una respuesta positiva o negativa ante la pregunta aunque no se tenga la seguridad o la imagen no sea perfecta"
# Lista de preguntas preconfiguradas
questions = [
"¿La persona está utilizando auriculares?",
"¿La persona está utilizando capucha o algo que le cubra la cabeza?",
"¿Existe dinero como monedas o billetes que estén el piso?",
"¿La persona se encuentra interactuando con su teléfono móvil?"
]
# load model
model = genai.GenerativeModel("gemini-1.5-flash")
# check image file and convert to a Numpy array
if isinstance(image, np.ndarray):
img = PIL.Image.fromarray(image)
else:
img = PIL.Image.open(image)
# Initialize results list
results = []
# Process each question
for question in questions:
full_prompt = f"{system_prompt}\n\n{question}"
response = model.generate_content([full_prompt, img])
results.append(response.text)
# Create a DataFrame to display results as a table
df = pd.DataFrame({"Pregunta": questions, "Respuesta": results})
return df
# Define Gradio interface
app = gr.Interface(
ImageChat,
inputs=gr.Image(label="Imagen"),
outputs=gr.Dataframe(headers=["Pregunta", "Respuesta"], label="Resultados"),
title="Análisis de Imagen",
theme="Taithrah/Minimal"
)
app.launch()