Barto517 commited on
Commit
b8de2f4
·
verified ·
1 Parent(s): ca7840e

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)

Files changed (1) hide show
  1. app.py +11 -17
app.py CHANGED
@@ -1,15 +1,16 @@
1
  import streamlit as st
2
- import openai
3
  import requests
4
  from bs4 import BeautifulSoup
5
  from PIL import Image
6
- from io import BytesIO
7
  import os
8
  from dotenv import load_dotenv
9
 
10
- # Cargar la clave de la API desde un archivo .env
11
  load_dotenv()
12
- openai.api_key = os.getenv("OPENAI_API_KEY")
 
 
13
 
14
  # Función para realizar búsquedas en Internet
15
  def search_internet(query):
@@ -48,22 +49,15 @@ if user_input:
48
  st.success("¡Resultados listos! 😊")
49
  st.write(search_results)
50
  else: # Si es una pregunta que el modelo debe responder
51
- try:
52
- with st.spinner("Pensando... 🤔"):
53
- response = openai.Completion.create(
54
- model="gpt-3.5-turbo",
55
- prompt=user_input,
56
- max_tokens=150,
57
- temperature=0.7
58
- )
59
- answer = response.choices[0].text.strip()
60
- st.success("¡Respuesta lista! 😊")
61
- st.write(answer)
62
- except Exception as e:
63
- st.error(f"Hubo un error: {e}")
64
 
65
  # Si el usuario sube una imagen
66
  if uploaded_image:
67
  analysis_result = analyze_image(uploaded_image)
68
  st.success("¡Imagen analizada! 😊")
69
  st.write(analysis_result)
 
 
1
  import streamlit as st
2
+ from transformers import pipeline
3
  import requests
4
  from bs4 import BeautifulSoup
5
  from PIL import Image
 
6
  import os
7
  from dotenv import load_dotenv
8
 
9
+ # Cargar la clave de la API (si decides usar alguna otra API en el futuro)
10
  load_dotenv()
11
+
12
+ # Cargar el modelo de Hugging Face
13
+ generator = pipeline('text-generation', model='gpt2') # Usamos GPT-2 de Hugging Face como ejemplo
14
 
15
  # Función para realizar búsquedas en Internet
16
  def search_internet(query):
 
49
  st.success("¡Resultados listos! 😊")
50
  st.write(search_results)
51
  else: # Si es una pregunta que el modelo debe responder
52
+ with st.spinner("Pensando... 🤔"):
53
+ response = generator(user_input, max_length=100, num_return_sequences=1)
54
+ answer = response[0]['generated_text']
55
+ st.success("¡Respuesta lista! 😊")
56
+ st.write(answer)
 
 
 
 
 
 
 
 
57
 
58
  # Si el usuario sube una imagen
59
  if uploaded_image:
60
  analysis_result = analyze_image(uploaded_image)
61
  st.success("¡Imagen analizada! 😊")
62
  st.write(analysis_result)
63
+