SebastianItamari commited on
Commit
72dcf5e
verified
1 Parent(s): aff9c25

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -15
app.py CHANGED
@@ -1,25 +1,21 @@
1
  import streamlit as st
2
- from transformers import pipeline
3
  import torch
4
- import os
5
- from huggingface_hub import login
6
 
7
  # Inicializar el modelo generador de texto
8
  @st.cache_resource # Cachear el modelo para no recargarlo repetidamente
9
  def load_model():
10
- read_key = os.getenv("HUGGINGFACE_TOKEN")
11
- login(token=read_key)
12
-
13
  model_id = "meta-llama/Llama-2-7b" # Cambia al modelo correcto disponible
14
- return pipeline(
15
- "text-generation",
16
- model=model_id,
17
  torch_dtype=torch.bfloat16,
18
  device_map="auto"
19
  )
 
20
 
21
- # Cargar el modelo
22
- pipe = load_model()
23
 
24
  # Crear la interfaz de usuario
25
  st.title("Generador de Texto Llama-2")
@@ -31,13 +27,22 @@ user_input = st.text_input("Escribe tu prompt aqu铆:", "")
31
  # Bot贸n para generar texto
32
  if st.button("Generar texto"):
33
  if user_input:
34
- # Generar el texto utilizando el modelo
 
35
  with st.spinner("Generando..."):
36
- result = pipe(user_input, do_sample=True, max_length=100)
37
- generated_text = result[0]['generated_text']
 
 
 
 
 
 
 
 
38
 
39
  # Mostrar el texto generado
40
  st.subheader("Texto generado:")
41
  st.write(generated_text)
42
  else:
43
- st.error("Por favor, introduce un prompt antes de generar texto.")
 
1
  import streamlit as st
2
+ from transformers import AutoModelForCausalLM, AutoTokenizer
3
  import torch
 
 
4
 
5
  # Inicializar el modelo generador de texto
6
  @st.cache_resource # Cachear el modelo para no recargarlo repetidamente
7
  def load_model():
 
 
 
8
  model_id = "meta-llama/Llama-2-7b" # Cambia al modelo correcto disponible
9
+ tokenizer = AutoTokenizer.from_pretrained(model_id)
10
+ model = AutoModelForCausalLM.from_pretrained(
11
+ model_id,
12
  torch_dtype=torch.bfloat16,
13
  device_map="auto"
14
  )
15
+ return tokenizer, model
16
 
17
+ # Cargar el modelo y el tokenizador
18
+ tokenizer, model = load_model()
19
 
20
  # Crear la interfaz de usuario
21
  st.title("Generador de Texto Llama-2")
 
27
  # Bot贸n para generar texto
28
  if st.button("Generar texto"):
29
  if user_input:
30
+ # Tokenizar el input y generar el texto
31
+ input_ids = tokenizer.encode(user_input, return_tensors='pt').to(model.device)
32
  with st.spinner("Generando..."):
33
+ output = model.generate(
34
+ input_ids,
35
+ do_sample=True,
36
+ max_length=100,
37
+ num_return_sequences=1,
38
+ pad_token_id=tokenizer.eos_token_id
39
+ )
40
+
41
+ # Decodificar el texto generado
42
+ generated_text = tokenizer.decode(output[0], skip_special_tokens=True)
43
 
44
  # Mostrar el texto generado
45
  st.subheader("Texto generado:")
46
  st.write(generated_text)
47
  else:
48
+ st.error("Por favor, introduce un prompt antes de generar texto.")