Fifthoply commited on
Commit
be25bb0
verified
1 Parent(s): 71ae54a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -13
app.py CHANGED
@@ -9,23 +9,25 @@ print(f"Cargando {model_id} en CPU...")
9
  pipe = pipeline(
10
  "text-generation",
11
  model=model_id,
12
- model_kwargs={"torch_dtype": torch.float32},
13
  device_map="cpu"
14
  )
15
 
16
  def chat_responder(message, history):
17
- # Construcci贸n del prompt ChatML
18
  prompt = "<|im_start|>system\nEres un asistente breve.<|im_end|>\n"
19
 
20
- # Procesar historial seg煤n el formato de Gradio 5.x (lista de dicts)
21
  for msg in history:
22
- role = msg["role"]
23
- content = msg["content"]
24
- # Solo mapeamos user y assistant
25
- if role in ["user", "assistant"]:
26
  prompt += f"<|im_start|>{role}\n{content}<|im_end|>\n"
 
 
 
 
27
 
28
- # Pregunta actual
29
  prompt += f"<|im_start|>user\n{message}<|im_end|>\n<|im_start|>assistant\n"
30
 
31
  # Generaci贸n
@@ -37,19 +39,18 @@ def chat_responder(message, history):
37
  eos_token_id=pipe.tokenizer.eos_token_id
38
  )
39
 
40
- # Extraer respuesta
41
  generated_text = outputs[0]['generated_text']
42
  respuesta = generated_text.split("<|im_start|>assistant\n")[-1].split("<|im_end|>")[0].strip()
43
 
44
  return respuesta
45
 
46
- # 2. Interfaz de Usuario
47
  demo = gr.ChatInterface(
48
  fn=chat_responder,
49
  title="Ayuda Alan 馃Ε",
50
- description="Preg煤ntame c贸mo se hace algo.",
51
- examples=["驴C贸mo se batea una pelota?", "驴C贸mo se escala una monta帽a?"],
52
- type="messages" # Forzamos el formato de mensajes para evitar ambig眉edad
53
  )
54
 
55
  if __name__ == "__main__":
 
9
  pipe = pipeline(
10
  "text-generation",
11
  model=model_id,
12
+ dtype=torch.float32,
13
  device_map="cpu"
14
  )
15
 
16
  def chat_responder(message, history):
 
17
  prompt = "<|im_start|>system\nEres un asistente breve.<|im_end|>\n"
18
 
19
+ # Procesar historial con detecci贸n de formato autom谩tica
20
  for msg in history:
21
+ # Caso 1: Formato de diccionario {"role": "...", "content": "..."}
22
+ if isinstance(msg, dict):
23
+ role = msg.get("role", "user")
24
+ content = msg.get("content", "")
25
  prompt += f"<|im_start|>{role}\n{content}<|im_end|>\n"
26
+ # Caso 2: Formato de lista cl谩sica [user, assistant]
27
+ elif isinstance(msg, (list, tuple)):
28
+ u, a = msg
29
+ prompt += f"<|im_start|>user\n{u}<|im_end|>\n<|im_start|>assistant\n{a}<|im_end|>\n"
30
 
 
31
  prompt += f"<|im_start|>user\n{message}<|im_end|>\n<|im_start|>assistant\n"
32
 
33
  # Generaci贸n
 
39
  eos_token_id=pipe.tokenizer.eos_token_id
40
  )
41
 
42
+ # Extraer la respuesta (usando el 铆ndice [0] para asegurar el acceso al texto)
43
  generated_text = outputs[0]['generated_text']
44
  respuesta = generated_text.split("<|im_start|>assistant\n")[-1].split("<|im_end|>")[0].strip()
45
 
46
  return respuesta
47
 
48
+ # 2. Interfaz de Usuario (Sin argumentos problem谩ticos)
49
  demo = gr.ChatInterface(
50
  fn=chat_responder,
51
  title="Ayuda Alan 馃Ε",
52
+ description="Hazme una pregunta y te dir茅 c贸mo se hace.",
53
+ examples=["驴C贸mo se toma agua?", "驴C贸mo se salta?"],
 
54
  )
55
 
56
  if __name__ == "__main__":