import streamlit as st import random from transformers import pipeline # Configuración de la página st.set_page_config( page_title="¿No sabes qué decir? Te ayudamos", page_icon="💡", layout="centered" ) # Estilo de la app st.markdown( """ """, unsafe_allow_html=True ) # Diccionario de conectores conectores = { "Explicación": ["porque", "ya que", "puesto que", "dado que"], "Contraste": ["sin embargo", "aunque", "no obstante", "a pesar de"], "Adición": ["además", "asimismo", "igualmente", "por otra parte"] } # Seleccionar conector lógico aleatorio def agregar_conector_automatico(texto_usuario): categoria = random.choice(list(conectores.keys())) conector = random.choice(conectores[categoria]) return f"{texto_usuario} {conector}" # Cargar modelo ligero @st.cache_resource def load_model(): return pipeline("text-generation", model="PlanTL-GOB-ES/gpt2-base-bne") generator = load_model() # Título llamativo st.markdown('
¿No sabes qué decir? 💡
', unsafe_allow_html=True) st.markdown('¡Te ayudamos a completar tus ideas con inteligencia artificial!
', unsafe_allow_html=True) # Entrada del usuario st.subheader("📝 Escribe tu idea:") prompt = st.text_area("Completa tu idea:", placeholder="Ejemplo: Me gustaría escribir una carta a...") # Generar respuesta if st.button("✨ Generar Texto ✨"): if not prompt.strip(): st.warning("⚠️ Por favor, ingresa un texto válido.") else: with st.spinner("⏳ Generando texto..."): prompt_con_conector = agregar_conector_automatico(prompt) result = generator( prompt_con_conector, max_new_tokens=25, temperature=0.3, # Un poco menos restrictivo top_p=0.8, # Sampling más relajado top_k=20, # Permitir más opciones repetition_penalty=1.2, # Penalización más moderada num_return_sequences=1 ) response = result[0]["generated_text"] st.subheader("🖋️ Texto Generado:") st.success(response) # Footer st.markdown(' ', unsafe_allow_html=True)