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 = "Green Greta" 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 = "Carga una foto del objeto que quieras reciclar y Green Greta identificará de qué se trata para que puedas desecharlo adecuadamente." 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 = "Green Greta ChatBot está aquí para responder todas tus preguntas y ayudarte a tomar decisiones más informadas sobre tu reciclaje." 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 = """
Banner Image

¡Bienvenido a nuestro clasificador de imágenes y chatbot para un reciclaje más inteligente!♻️

¿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!

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.

¿Cómo usarlo?

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