File size: 5,632 Bytes
9cdf6e8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1a8d06e
 
 
 
 
 
9cdf6e8
cca430f
 
 
 
 
9cdf6e8
db48f90
9cdf6e8
 
 
09f58c3
 
9cdf6e8
db48f90
f70e55b
 
 
 
9cdf6e8
 
cca430f
 
9cdf6e8
db48f90
b850ab6
9cdf6e8
cca430f
f70e55b
f9f0b40
f9b469c
db48f90
210818b
f70e55b
 
 
 
 
09f58c3
9cdf6e8
 
89ef159
 
 
72ae891
 
 
 
89ef159
09f58c3
 
89ef159
 
 
 
 
d4213f5
89ef159
9cdf6e8
89ef159
09f58c3
9cdf6e8
 
 
 
 
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
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()