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)
|