Spaces:
Sleeping
Sleeping
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() |