alex16052G commited on
Commit
54b5ba7
·
verified ·
1 Parent(s): 77321e6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -20
app.py CHANGED
@@ -6,24 +6,12 @@ import gradio as gr
6
  chat_model_state = None
7
  chat_tokenizer_state = None
8
 
9
- # Inicialización de ZeroGPU si es necesario
10
- def initialize_zero_gpu():
11
- """Inicializa ZeroGPU si es requerido por el entorno."""
12
- try:
13
- import spaces
14
- spaces.GPU(lambda x: x) # Realiza una inicialización dummy
15
- print("ZeroGPU inicializado correctamente.")
16
- except ImportError:
17
- print("ZeroGPU no está disponible o no es necesario en este entorno.")
18
-
19
- # Llamamos a la inicialización de ZeroGPU al inicio
20
- initialize_zero_gpu()
21
-
22
  def load_chat_model():
23
  """Función para cargar el modelo de chat."""
24
  global chat_model_state, chat_tokenizer_state
25
  try:
26
  model_name = "Qwen/Qwen2.5-3B-Instruct"
 
27
  # Cargar el modelo en CPU o GPU según disponibilidad
28
  chat_model_state = AutoModelForCausalLM.from_pretrained(
29
  model_name,
@@ -34,11 +22,13 @@ def load_chat_model():
34
  print("Modelo cargado exitosamente.")
35
  except Exception as e:
36
  print(f"Error al cargar el modelo de chat: {e}")
 
 
37
 
38
- def generate_response(messages, model, tokenizer):
39
  """Genera una respuesta usando el modelo de chat."""
40
  try:
41
- if model is None or tokenizer is None:
42
  raise ValueError("El modelo de chat o el tokenizer no están cargados.")
43
 
44
  # Construir el prompt manualmente a partir del historial de mensajes
@@ -56,17 +46,17 @@ def generate_response(messages, model, tokenizer):
56
  prompt += "Assistant:"
57
 
58
  # Tokenizar el prompt
59
- model_inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
60
- generated_ids = model.generate(
61
  **model_inputs,
62
  max_new_tokens=512,
63
  temperature=0.7,
64
  top_p=0.95,
65
- eos_token_id=tokenizer.eos_token_id,
66
  )
67
 
68
  # Decodificar la respuesta generada
69
- generated_text = tokenizer.decode(generated_ids[0], skip_special_tokens=True)
70
 
71
  # Extraer solo la respuesta del asistente
72
  response = generated_text[len(prompt):].strip()
@@ -101,7 +91,7 @@ with gr.Blocks() as app_chat:
101
  history.append((text, None))
102
 
103
  # Generar la respuesta del modelo de chat
104
- response = generate_response(conv_state, chat_model_state, chat_tokenizer_state)
105
 
106
  conv_state.append({"role": "assistant", "content": response})
107
  history[-1] = (text, response)
 
6
  chat_model_state = None
7
  chat_tokenizer_state = None
8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  def load_chat_model():
10
  """Función para cargar el modelo de chat."""
11
  global chat_model_state, chat_tokenizer_state
12
  try:
13
  model_name = "Qwen/Qwen2.5-3B-Instruct"
14
+ print("Cargando el modelo de chat...")
15
  # Cargar el modelo en CPU o GPU según disponibilidad
16
  chat_model_state = AutoModelForCausalLM.from_pretrained(
17
  model_name,
 
22
  print("Modelo cargado exitosamente.")
23
  except Exception as e:
24
  print(f"Error al cargar el modelo de chat: {e}")
25
+ chat_model_state = None
26
+ chat_tokenizer_state = None
27
 
28
+ def generate_response(messages):
29
  """Genera una respuesta usando el modelo de chat."""
30
  try:
31
+ if chat_model_state is None or chat_tokenizer_state is None:
32
  raise ValueError("El modelo de chat o el tokenizer no están cargados.")
33
 
34
  # Construir el prompt manualmente a partir del historial de mensajes
 
46
  prompt += "Assistant:"
47
 
48
  # Tokenizar el prompt
49
+ model_inputs = chat_tokenizer_state(prompt, return_tensors="pt").to(chat_model_state.device)
50
+ generated_ids = chat_model_state.generate(
51
  **model_inputs,
52
  max_new_tokens=512,
53
  temperature=0.7,
54
  top_p=0.95,
55
+ eos_token_id=chat_tokenizer_state.eos_token_id,
56
  )
57
 
58
  # Decodificar la respuesta generada
59
+ generated_text = chat_tokenizer_state.decode(generated_ids[0], skip_special_tokens=True)
60
 
61
  # Extraer solo la respuesta del asistente
62
  response = generated_text[len(prompt):].strip()
 
91
  history.append((text, None))
92
 
93
  # Generar la respuesta del modelo de chat
94
+ response = generate_response(conv_state)
95
 
96
  conv_state.append({"role": "assistant", "content": response})
97
  history[-1] = (text, response)