File size: 2,379 Bytes
71acbaf
b8de2f4
ca7840e
 
 
 
 
bc93fdd
b8de2f4
ca7840e
b8de2f4
 
 
ca7840e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
71acbaf
 
ca7840e
bc93fdd
 
 
71acbaf
ca7840e
 
 
 
bc93fdd
ca7840e
 
 
 
 
 
b8de2f4
 
 
 
 
ca7840e
 
 
 
 
 
b8de2f4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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)