demo_DiagTrast / app.py
Stremie's picture
Update app.py (#1)
4692434
raw
history blame
2.74 kB
import streamlit as st
import pandas as pd
import utils
import time
from transformers import pipeline
from transformers import AutoTokenizer
from transformers import AutoModelForSequenceClassification
#####################
model_berto='hackathon-somos-nlp-2023/DiagTrast-Berto'
tokenizer_berto = AutoTokenizer.from_pretrained(model_berto)
classifier_berto = pipeline("text-classification", model=model_berto)
model_xml='hackathon-somos-nlp-2023/DiagTrast-xlm-roberta-base'
tokenizer_xml = AutoTokenizer.from_pretrained(model_xml)
classifier_xml = pipeline("text-classification", model=model_xml)
#####################
st.title('🏥 Diagnóstico de Trastornos Mentales')
DemoTab, AboutTab = st.tabs(["Demo", "Acerca de"])
with AboutTab:
st.subheader("Motivación")
st.markdown(
"[Colocar aquí la motivación]."
)
st.subheader("Recursos")
st.markdown("""
Modelos usados:
- [hackathon-somos-nlp-2023/DiagTrast-Berto](https://huggingface.co/hackathon-somos-nlp-2023/DiagTrast-Berto)
- [hackathon-somos-nlp-2023/DiagTrast-xlm-roberta-base](https://huggingface.co/hackathon-somos-nlp-2023/DiagTrast-xlm-roberta-base)
Dataset:
- [hackathon-somos-nlp-2023/DiagTrast](https://huggingface.co/datasets/hackathon-somos-nlp-2023/DiagTrast)
""")
st.subheader("Equipo")
st.markdown("""
- [Alberto Martín Garrido](https://huggingface.co/Stremie)
- [Edgar Mencia]()
- [Miguel Ángel Solís Orozco](https://huggingface.co/homosapienssapiens)
- [Jose Carlos Vílchez Villegas](https://huggingface.co/JCarlos)
""")
with DemoTab:
with st.form(key="diagtrast_form"):
sintomas = st.text_input(label = 'Introduce síntomas:',
value = 'La gente cuando me ve por la calle me mira y halagan mi belleza')
submit_button = st.form_submit_button(label="Clasificar")
if submit_button and not sintomas:
st.warning("⚠️ Debe introducir los síntomas.")
elif submit_button:
with st.spinner('Clasificando...'):
pred_berto = classifier_berto.predict(utils.clean_text(sintomas))
pred_xml = classifier_xml.predict(utils.clean_text(sintomas))
df = pd.DataFrame({
'Modelo': ["DiagTrast-Berto", "DiagTrast-xlm-roberta-base"],
'Diagnóstico': [pred_berto[0]['label'], pred_xml[0]['label']],
'Score': [f"{pred_berto[0]['score']:.2%}", f"{pred_xml[0]['score']:.2%}"]
})
st.markdown("### Resultados:")
st.caption("")
st.dataframe(df, use_container_width=True)
st.caption("")
alert = st.success("✅ ¡Hecho!")