Spaces:
Sleeping
Sleeping
import gradio as gr | |
from transformers import pipeline, AutoModelForCausalLM, AutoTokenizer | |
import torch | |
import theme | |
theme = theme.Theme() | |
import os | |
import sys | |
sys.path.append('../..') | |
#langchain | |
from langchain.text_splitter import RecursiveCharacterTextSplitter, CharacterTextSplitter | |
from langchain.embeddings import HuggingFaceEmbeddings | |
from langchain.prompts import PromptTemplate | |
from langchain.chains import RetrievalQA | |
from langchain.prompts import ChatPromptTemplate | |
from langchain.schema import StrOutputParser | |
from langchain.schema.runnable import Runnable | |
from langchain.schema.runnable.config import RunnableConfig | |
from langchain.chains import ( | |
LLMChain, ConversationalRetrievalChain) | |
from langchain.vectorstores import Chroma | |
from langchain.memory import ConversationBufferMemory | |
from langchain.chains import LLMChain | |
from langchain.prompts.prompt import PromptTemplate | |
from langchain.prompts.chat import ChatPromptTemplate, SystemMessagePromptTemplate | |
from langchain.prompts import SystemMessagePromptTemplate, HumanMessagePromptTemplate, ChatPromptTemplate, MessagesPlaceholder | |
from langchain.document_loaders import PyPDFDirectoryLoader | |
from pydantic import BaseModel, Field | |
from langchain.output_parsers import PydanticOutputParser | |
from langchain_community.llms import HuggingFaceHub | |
from langchain_community.document_loaders import WebBaseLoader | |
from pydantic import BaseModel | |
import shutil | |
custom_title = "<span style='color: rgb(243, 239, 224);'>Green Greta</span>" | |
from huggingface_hub import from_pretrained_keras | |
import tensorflow as tf | |
from tensorflow import keras | |
from PIL import Image | |
# Cell 1: Image Classification Model | |
pipeline = pipeline(task="image-classification", model="julien-c/hotdog-not-hotdog") | |
def predict_image(image): | |
predictions = pipeline(image) | |
return {p["label"]: p["score"] for p in predictions} | |
custom_desc_img = "<span style='font-size: 16px; color: rgb(243, 239, 224);'>Carga una foto del objeto que quieras reciclar y Green Greta identificará de qué se trata para que puedas desecharlo adecuadamente.</span>" | |
image_gradio_app = gr.Interface( | |
fn=predict_image, | |
inputs=gr.Image(label="Imágen", sources=['upload', 'webcam'], type="pil"), | |
outputs=[gr.Label(label="Clasificación")], | |
title=custom_title, | |
description=custom_desc_img, | |
theme=theme, | |
submit_btn="Cargar", | |
clear_btn="Borrar", | |
) | |
def echo(message, history): | |
return message | |
custom_desc_chat = "<span style='font-size: 16px; color: rgb(243, 239, 224);'>Green Greta ChatBot está aquí para responder todas tus preguntas y ayudarte a tomar decisiones más informadas sobre tu reciclaje.</span>" | |
chatbot_gradio_app = gr.ChatInterface( | |
fn=echo, | |
chatbot=gr.Chatbot(height=400), | |
textbox=gr.Textbox(placeholder="Hazme una pregunta sobre reciclaje...", scale=7), | |
title=custom_title, | |
description=custom_desc_chat, | |
examples=["Hola, ¿cuál es tu nombre?", "¿Qué puedo hacer con ropa que ya no uso?", "¿Qué recursos educativos existen para aprender mas sobre sostenibilidad?"], | |
fill_height=True, | |
submit_btn="Enviar", | |
retry_btn="Reenviar", | |
undo_btn="Deshacer", | |
clear_btn="Borrar", | |
) | |
banner_tab_content = """ | |
<div style="background-color: #d3e3c3; text-align: center; padding: 20px; display: flex; flex-direction: column; align-items: center;"> | |
<img src="https://huggingface.co/spaces/rocioadlc/test_4/resolve/main/front_4.jpg" alt="Banner Image" style="width: 50%; max-width: 500px; margin: 0 auto;"> | |
<h1 style="font-size: 24px; color: #4e6339; margin-top: 20px;">¡Bienvenido a nuestro clasificador de imágenes y chatbot para un reciclaje más inteligente!♻️</h1> | |
<p style="font-size: 16px; color: #4e6339; text-align: justify;">¿Alguna vez te has preguntado si puedes reciclar un objeto en particular? ¿O te has sentido abrumado por la cantidad de residuos que generas y no sabes cómo manejarlos de manera más sostenible? ¡Estás en el lugar correcto!</p> | |
<p style="font-size: 16px; color: #4e6339; text-align: justify;">Nuestra plataforma combina la potencia de la inteligencia artificial con la comodidad de un chatbot para brindarte respuestas rápidas y precisas sobre qué objetos son reciclables y cómo hacerlo de la manera más eficiente.</p> | |
<p style="font-size: 16px; text-align:center;"><strong><span style="color: #4e6339;">¿Cómo usarlo?</span></strong> | |
<ul style="list-style-type: disc; text-align: justify; margin-top: 20px; padding-left: 20px;"> | |
<li style="font-size: 16px; color: #4e6339;"><strong><span style="color: #4e6339;">Green Greta Image Classification:</span></strong> Ve a la pestaña "Green Greta - Clasificador de Imágenes" y simplemente carga una foto del objeto que quieras reciclar, y nuestro modelo de identificará de qué se trata🕵️♂️ para que puedas desecharlo adecuadamente.</li> | |
<li style="font-size: 16px; color: #4e6339;"><strong><span style="color: #4e6339;">Green Greta Chat:</span></strong> ¿Tienes preguntas sobre reciclaje, materiales específicos o prácticas sostenibles? ¡Pregunta a nuestro chatbot en la pestaña "Green Greta - Chat"!📝 Está aquí para responder todas tus preguntas y ayudarte a tomar decisiones más informadas sobre tu reciclaje.</li> | |
</ul> | |
</div> | |
""" | |
banner_tab = gr.Markdown(banner_tab_content) | |
# Combine interfaces into a single app | |
app = gr.TabbedInterface( | |
[banner_tab, image_gradio_app, chatbot_gradio_app], | |
tab_names=["Bienvenido a Green Greta", "Green Greta - Clasificador de Imágenes", "Green Greta - Chat"], | |
theme=theme | |
) | |
app.queue() | |
app.launch() |