Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from transformers import AutoModelForCausalLM, AutoTokenizer | |
| import torch | |
| import os | |
| from huggingface_hub import login | |
| # Iniciar sesi贸n en Hugging Face utilizando un token guardado en una variable de entorno | |
| def login_to_huggingface(): | |
| read_key = os.getenv("Read_Token") # Aseg煤rate de tener la variable de entorno configurada | |
| if read_key: | |
| login(token=read_key) | |
| else: | |
| st.error("No se encontr贸 el token de Hugging Face. Aseg煤rate de que la variable de entorno 'HUGGINGFACE_TOKEN' est茅 configurada.") | |
| # Inicializar el modelo generador de texto | |
| # Cachear el modelo para no recargarlo repetidamente | |
| def load_model(): | |
| model_id = "meta-llama/Llama-3.2-1B" # Cambia al modelo correcto disponible | |
| tokenizer = AutoTokenizer.from_pretrained(model_id) | |
| model = AutoModelForCausalLM.from_pretrained( | |
| model_id, | |
| torch_dtype=torch.bfloat16, | |
| device_map="auto" | |
| ) | |
| return tokenizer, model | |
| # Iniciar sesi贸n | |
| login_to_huggingface() | |
| # Cargar el modelo y el tokenizador | |
| tokenizer, model = load_model() | |
| # Crear la interfaz de usuario | |
| st.title("Generador de Texto Llama-2") | |
| st.write("Introduce un texto para que el modelo lo contin煤e:") | |
| # Campo de entrada para el prompt | |
| user_input = st.text_input("Escribe tu prompt aqu铆:", "") | |
| # Bot贸n para generar texto | |
| if st.button("Generar texto"): | |
| if user_input: | |
| # Tokenizar el input y generar el texto | |
| input_ids = tokenizer.encode(user_input, return_tensors='pt').to(model.device) | |
| with st.spinner("Generando..."): | |
| output = model.generate( | |
| input_ids, | |
| do_sample=True, | |
| max_length=100, | |
| num_return_sequences=1, | |
| pad_token_id=tokenizer.eos_token_id | |
| ) | |
| # Decodificar el texto generado | |
| generated_text = tokenizer.decode(output[0], skip_special_tokens=True) | |
| # Mostrar el texto generado | |
| st.subheader("Texto generado:") | |
| st.write(generated_text) | |
| else: | |
| st.error("Por favor, introduce un prompt antes de generar texto.") | |