IA_Study / app.py
Barto517's picture
app.py
b8de2f4 verified
raw
history blame
2.38 kB
import streamlit as st
from transformers import pipeline
import requests
from bs4 import BeautifulSoup
from PIL import Image
import os
from dotenv import load_dotenv
# Cargar la clave de la API (si decides usar alguna otra API en el futuro)
load_dotenv()
# Cargar el modelo de Hugging Face
generator = pipeline('text-generation', model='gpt2') # Usamos GPT-2 de Hugging Face como ejemplo
# Función para realizar búsquedas en Internet
def search_internet(query):
search_url = f"https://www.google.com/search?q={query}"
headers = {"User-Agent": "Mozilla/5.0"}
response = requests.get(search_url, headers=headers)
if response.status_code == 200:
soup = BeautifulSoup(response.text, "html.parser")
results = soup.find_all('div', class_='BVG0Nb')
search_results = [result.get_text() for result in results]
return "\n".join(search_results[:5]) # Retornar los primeros 5 resultados
else:
return "No pude obtener resultados de la búsqueda."
# Función para analizar imágenes
def analyze_image(image_file):
image = Image.open(image_file)
# Aquí puedes agregar más análisis o usar algún modelo para analizar la imagen.
return f"Imagen cargada: {image.size[0]}x{image.size[1]} px"
# Título de la aplicación
st.title("Chat IA con búsqueda y análisis de imágenes 🤖")
# Input del usuario
user_input = st.text_input("Hazme una pregunta:")
# Subir una imagen (si se desea analizar)
uploaded_image = st.file_uploader("Sube una imagen para análisis", type=["jpg", "png"])
# Procesar la respuesta
if user_input:
if "buscar" in user_input.lower(): # Si el usuario pide realizar una búsqueda
with st.spinner("Buscando en Internet... 🕵️‍♂️"):
search_results = search_internet(user_input)
st.success("¡Resultados listos! 😊")
st.write(search_results)
else: # Si es una pregunta que el modelo debe responder
with st.spinner("Pensando... 🤔"):
response = generator(user_input, max_length=100, num_return_sequences=1)
answer = response[0]['generated_text']
st.success("¡Respuesta lista! 😊")
st.write(answer)
# Si el usuario sube una imagen
if uploaded_image:
analysis_result = analyze_image(uploaded_image)
st.success("¡Imagen analizada! 😊")
st.write(analysis_result)