Spaces:
Running
Running
File size: 2,399 Bytes
e65434b 6a250ce 0d8ffe1 6a250ce 0d8ffe1 6a250ce 0d8ffe1 6a250ce 0d8ffe1 6a250ce 0d8ffe1 6a250ce e65434b 6a250ce d4bedcd 6a250ce d120ffe 6a250ce d120ffe 6a250ce d120ffe 6a250ce d4bedcd 6a250ce 0d8ffe1 6a250ce 0d8ffe1 6a250ce c2d5a8c 6a250ce c2d5a8c 6a250ce e65434b 6a250ce 0d8ffe1 6a250ce |
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 |
import gradio as gr
import os
# -------------------------
# 1️⃣ Lógica del chat
# -------------------------
chat_history = []
def respond(message, history, system_message="Ets l'assistent sanitari de My Health. Respon en català, de manera concisa i útil."):
global chat_history
chat_history.append({"role": "user", "content": message})
if message.lower().strip() in ["hola", "hi"]:
reply = "Hola! Soc un chatbot basat en LLM. Com et puc ajudar amb la teva salut avui?"
elif "informació" in message.lower():
reply = "La informació que cerques es pot trobar a la secció d'informes o diagnòstics."
else:
reply = f"He rebut el teu missatge: '{message}'. Pots provar amb una pregunta sobre el teu historial clínic."
chat_history.append({"role": "assistant", "content": reply})
return reply
# -------------------------
# 2️⃣ Función para API (HTML flotante)
# -------------------------
def api_chat(message):
return respond(message, chat_history)
# -------------------------
# 3️⃣ Cargar HTML
# -------------------------
HTML_FILE_PATH = "My_health.html"
def load_html_content():
if not os.path.exists(HTML_FILE_PATH):
return "<h1>Error: archivo HTML no encontrado.</h1>"
with open(HTML_FILE_PATH, "r", encoding="utf-8") as f:
return f.read()
# -------------------------
# 4️⃣ Interfaz Gradio
# -------------------------
chatbot_llm = gr.ChatInterface(
fn=respond,
textbox=gr.Textbox(placeholder="Escriu la teva pregunta al LLM...", container=False, scale=7),
theme="soft",
title="Asistent LLM",
additional_inputs=[
gr.Textbox(value="Ets l'assistent sanitari de My Health. Respon en català, de manera concisa i útil.", label="Missatge del sistema"),
],
)
with gr.Blocks() as demo:
gr.Markdown("# My Health Dashboard - HTML + LLM")
with gr.Tabs():
with gr.TabItem("Dashboard HTML + Chat Flotant"):
gr.HTML(load_html_content())
with gr.TabItem("Chat LLM"):
chatbot_llm.render()
with gr.TabItem("API Endpoint Simulado"):
gr.Markdown("Aquest endpoint es pot cridar des del teu HTML flotant: `api_chat(message)`")
# -------------------------
# 5️⃣ Lanzamiento
# -------------------------
if __name__ == "__main__":
demo.launch(server_name="0.0.0.0", server_port=7860, share=True)
|