JaphetHernandez commited on
Commit
b99eeda
verified
1 Parent(s): 105c4c8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -16
app.py CHANGED
@@ -8,7 +8,7 @@ from threading import Thread
8
  huggingface_token = st.secrets["HUGGINGFACEHUB_API_TOKEN"]
9
  login(huggingface_token)
10
 
11
- # Cambiar a la versi贸n Meta Llama 3.1 3B
12
  model_id = "meta-llama/Llama-3.2-1B"
13
 
14
  # Cargar el tokenizador y el modelo
@@ -19,19 +19,18 @@ tokenizer.pad_token = tokenizer.eos_token
19
  # Definir longitud m谩xima de tokens
20
  MAX_INPUT_TOKEN_LENGTH = 4096
21
 
22
- def generate_response(input_text, temperature=0.2, max_new_tokens=50):
23
  """Funci贸n de generaci贸n de texto con el modelo."""
24
- input_ids = tokenizer.encode(input_text, return_tensors='pt')
25
- input_ids = input_ids.to(model.device)
26
 
27
  streamer = TextIteratorStreamer(tokenizer, timeout=10.0, skip_prompt=True, skip_special_tokens=True)
28
  generate_kwargs = dict(
29
  input_ids=input_ids,
30
  streamer=streamer,
31
  max_new_tokens=max_new_tokens,
32
- do_sample=temperature != 0,
33
- top_k=10, # Limita las palabras m谩s probables a 50
34
- top_p=0.9, # Considera solo el 90% de la probabilidad acumulada
35
  temperature=temperature,
36
  eos_token_id=[tokenizer.eos_token_id]
37
  )
@@ -47,11 +46,10 @@ def generate_response(input_text, temperature=0.2, max_new_tokens=50):
47
  # Devolver la respuesta completa
48
  return "".join(outputs)
49
 
50
-
51
  def main():
52
- st.title("Chat con Meta Llama 3.1 3B")
53
 
54
- # Paso 1: Subir el archivo CSV
55
  uploaded_file = st.file_uploader("Por favor, sube un archivo CSV para iniciar:", type=["csv"])
56
 
57
  if uploaded_file is not None:
@@ -60,24 +58,27 @@ def main():
60
  st.write("Archivo CSV cargado exitosamente:")
61
  st.write(df.head()) # Mostrar las primeras filas del dataframe
62
  job_titles = df['job_title'].tolist()
63
- # Prompt inicial
64
- initial_prompt = f"I have a list of job titles: {job_titles}. Please give me the first job title from the list."
65
 
 
 
66
  st.write(f"Query: {query}")
67
  st.write(f"Prompt inicial: {initial_prompt}")
68
 
69
  # Generar la respuesta del modelo
70
  if st.button("Generar respuesta"):
71
  with st.spinner("Generando respuesta..."):
72
- response = generate_response(initial_prompt) # Obtener la primera respuesta completa
73
- st.write(f"Respuesta del modelo: {response}")
74
-
 
 
 
75
  # Terminar la conversaci贸n
76
  st.success("La conversaci贸n ha terminado.")
77
 
78
  # Opci贸n para reiniciar o finalizar
79
  if st.button("Iniciar nueva conversaci贸n"):
80
- st.experimental_rerun() # Reinicia la aplicaci贸n
81
  elif st.button("Terminar"):
82
  st.stop()
83
 
 
8
  huggingface_token = st.secrets["HUGGINGFACEHUB_API_TOKEN"]
9
  login(huggingface_token)
10
 
11
+ # Cambiar a la versi贸n Meta Llama 3.1 1B
12
  model_id = "meta-llama/Llama-3.2-1B"
13
 
14
  # Cargar el tokenizador y el modelo
 
19
  # Definir longitud m谩xima de tokens
20
  MAX_INPUT_TOKEN_LENGTH = 4096
21
 
22
+ def generate_response(input_text, temperature=0.7, max_new_tokens=100):
23
  """Funci贸n de generaci贸n de texto con el modelo."""
24
+ input_ids = tokenizer.encode(input_text, return_tensors='pt').to(model.device)
 
25
 
26
  streamer = TextIteratorStreamer(tokenizer, timeout=10.0, skip_prompt=True, skip_special_tokens=True)
27
  generate_kwargs = dict(
28
  input_ids=input_ids,
29
  streamer=streamer,
30
  max_new_tokens=max_new_tokens,
31
+ do_sample=True,
32
+ top_k=50,
33
+ top_p=0.9,
34
  temperature=temperature,
35
  eos_token_id=[tokenizer.eos_token_id]
36
  )
 
46
  # Devolver la respuesta completa
47
  return "".join(outputs)
48
 
 
49
  def main():
50
+ st.title("Chat con Meta Llama 3.2 1B")
51
 
52
+ # Subir archivo CSV
53
  uploaded_file = st.file_uploader("Por favor, sube un archivo CSV para iniciar:", type=["csv"])
54
 
55
  if uploaded_file is not None:
 
58
  st.write("Archivo CSV cargado exitosamente:")
59
  st.write(df.head()) # Mostrar las primeras filas del dataframe
60
  job_titles = df['job_title'].tolist()
 
 
61
 
62
+ # Prompt mejorado
63
+ initial_prompt = f"I have a list of job titles: {job_titles}. Please give me the first job title from the list."
64
  st.write(f"Query: {query}")
65
  st.write(f"Prompt inicial: {initial_prompt}")
66
 
67
  # Generar la respuesta del modelo
68
  if st.button("Generar respuesta"):
69
  with st.spinner("Generando respuesta..."):
70
+ response = generate_response(initial_prompt, temperature=0.7)
71
+ if response:
72
+ st.write(f"Respuesta del modelo: {response}")
73
+ else:
74
+ st.warning("No se pudo generar una respuesta.")
75
+
76
  # Terminar la conversaci贸n
77
  st.success("La conversaci贸n ha terminado.")
78
 
79
  # Opci贸n para reiniciar o finalizar
80
  if st.button("Iniciar nueva conversaci贸n"):
81
+ st.experimental_rerun()
82
  elif st.button("Terminar"):
83
  st.stop()
84