Titobsala's picture
interface streamlit
9765916
import streamlit as st
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, pipeline
import traceback
# Desative os avisos para uma saída mais limpa
import warnings
warnings.filterwarnings("ignore")
MODEL_NAME = 'exo-is/t5-small-60M-esg-keyword'
@st.cache_resource
def load_model():
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, use_fast=False)
model = AutoModelForSeq2SeqLM.from_pretrained(MODEL_NAME)
return model, tokenizer
st.title('Gerador de Texto T5')
try:
model, tokenizer = load_model()
gerador = pipeline('text2text-generation', model=model, tokenizer=tokenizer)
st.write("Este aplicativo gera texto baseado em um prompt inicial usando o modelo T5.")
prompt = st.text_area("Digite o prompt inicial:", height=100)
col1, col2 = st.columns(2)
with col1:
max_length = st.slider("Comprimento máximo do texto gerado:", min_value=10, max_value=500, value=100)
with col2:
num_return_sequences = st.slider("Número de sequências a gerar:", min_value=1, max_value=5, value=1)
temperature = st.slider("Temperatura (criatividade):", min_value=0.1, max_value=1.0, value=0.7, step=0.1)
if st.button('Gerar Texto'):
if prompt:
with st.spinner('Gerando texto...'):
# Usar beam search se num_return_sequences > 1
if num_return_sequences > 1:
resultados = gerador(prompt, max_length=max_length, num_return_sequences=num_return_sequences,
temperature=temperature, num_beams=num_return_sequences,
no_repeat_ngram_size=2, early_stopping=True)
else:
resultados = gerador(prompt, max_length=max_length, num_return_sequences=1,
temperature=temperature, do_sample=True)
st.subheader('Texto(s) gerado(s):')
for i, resultado in enumerate(resultados, 1):
st.markdown(f"**Sequência {i}:**")
st.write(resultado['generated_text'])
st.markdown("---")
else:
st.warning('Por favor, digite um prompt inicial.')
except Exception as e:
st.error(f"Um erro ocorreu: {str(e)}")
st.error("Traceback completo:")
st.error(traceback.format_exc())
st.markdown("---")
st.write("Desenvolvido com ❤️ usando Streamlit e Hugging Face Transformers")