PharmaWise_Puma / app.py
geronimo-pericoli's picture
Update app.py
2628cf3 verified
import asyncio
asyncio.set_event_loop(asyncio.new_event_loop())
import gradio as gr
import os
import time
import pandas as pd
from datasets import load_dataset, Dataset, DatasetDict
from datetime import datetime
from huggingface_hub import login, HfApi, file_exists, hf_hub_download
import transformers
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer, BitsAndBytesConfig, TextIteratorStreamer
import spaces
from threading import Thread
# HuggingFace Token:
HF_TOKEN = os.environ.get('hf')
login(HF_TOKEN)
# Context:
exec(os.environ.get('context'))
# Define the CSS with media queries
custom_css = """
.upload-button.svelte-it7283 {
display: none !important;
}
textarea {
background: transparent !important;
}
.form, #chatbox {
border: 2px solid rgba(147, 197, 253, 0.3) !important;
}
.md p,
.md h1,
.md h2,
.md h3,
.md h4 {
margin-top: 0px !important;
margin-bottom: 0px !important;
}
#component-1 {
position: relative; /* Asegura que el pseudo-elemento se posicione correctamente */
display: flex;
align-items: center;
padding-left: 130px;
padding-bottom: 20px;
}
#component-1::before {
content: "";
display: block;
background-image: url('https://i.imgur.com/IfdsI2s.png');
background-size: contain; /* O puedes usar 'cover' si prefieres */
background-repeat: no-repeat;
width: 100px;
height: 92px;
position: absolute;
top: 0;
left: 0;
}
#component-20 {
margin: 0 auto;
}
"""
with gr.Blocks(theme='sudeepshouche/minimalist', css=custom_css) as demo:
gr.Markdown("""
# PharmaWise Puma
Entrenado por Pharma.IA - versión **β**
""")
with gr.Row():
with gr.Column():
chatbot = gr.Chatbot([], elem_id="chatbox", show_label=False, bubble_full_width=False,)
chat_input = gr.MultimodalTextbox(interactive=True, file_types=[], placeholder="Escribe tu consulta...", show_label=False, elem_id="input")
with gr.Row():
with gr.Column():
temperature = gr.Slider(minimum=0.0, maximum=0.6, value=0.1, step=0.1, label="Temperature")
with gr.Column():
top_p = gr.Slider(minimum=0.8, maximum=1.0, value=0.9, step=0.1, label="Top-P")
with gr.Row():
with gr.Column():
clear_button = gr.Button("Vaciar historial")
clear_button.click(clear_history, [chatbot, chat_input], [chatbot, chat_input])
gr.Markdown("""
#### Temperature:
Controla la aleatoriedad de las respuestas generadas por el modelo.
Un valor bajo (cercano a 0) hace que el modelo sea más determinista y predecible, eligiendo las palabras con mayor probabilidad.
Un valor alto (cercano a 1 o más) aumenta la diversidad de las respuestas, permitiendo elecciones menos probables y haciendo el texto más creativo.
#### Top-P (también conocido como nucleus sampling):
Controla la calidad y diversidad de las respuestas.
El modelo selecciona palabras de un conjunto (nucleus) que cubre un porcentaje acumulado de probabilidad, definido por el valor de top-P.
Un valor bajo (como 0.1) hace que el modelo elija entre las palabras más probables (reduciendo diversidad).
Un valor alto (como 0.9) permite al modelo considerar una mayor variedad de palabras (aumentando diversidad).
Estos parámetros se utilizan para ajustar cómo el modelo de lenguaje genera texto, balanceando entre precisión y creatividad.
""")
with gr.Column():
gr.Markdown("""
#### Aviso Legal de Demostración
Los aplicativos de demostración presentados en este sitio web están diseñados exclusivamente con el propósito de demostrar capacidades básicas relacionadas con la inteligencia artificial aplicada a la industria farmacéutica. Estas herramientas son proporcionadas únicamente para fines demostrativos y educativos, y no están destinadas a ser utilizadas como fuente de información profesional o para fines de salud. Esta versión de prueba tiene capacidades limitadas y es una versión inicial de prueba.
Pharma.IA.SRL no garantiza la exactitud, fiabilidad, o actualidad de la información generada por este demo versión alfa. El usuario acepta que el uso de la información proporcionada por este aplicativo es bajo su propio riesgo y responsabilidad. Pharma.IA se exime de cualquier responsabilidad por decisiones tomadas en base a la información obtenida a través de este aplicativo, así como de cualquier daño o perjuicio resultante de su uso para propósitos profesionales o de salud.
Al acceder y utilizar estos demos, usted reconoce haber leído y entendido este aviso legal, y acepta estar sujeto a sus términos y condiciones. Si no está de acuerdo con estos términos, le solicitamos abstenerse de utilizar el aplicativo.
""")
gr.Image("https://pharma-ia.com.ar/wp-content/uploads/2024/03/cropped-logo-pharma-ia-retina.png", height="100px", width="200px", show_label=False, container=False, show_share_button=False, show_download_button=False,)
chat_msg = chat_input.submit(add_message, [chatbot, chat_input], [chatbot, chat_input])
bot_msg = chat_msg.then(bot, [chatbot, temperature, top_p], chatbot, api_name="bot_response")
bot_msg.then(lambda: gr.MultimodalTextbox(interactive=True), None, [chat_input])
chatbot.like(print_like_dislike, None, None)
demo.queue(default_concurrency_limit=20)
demo.launch()