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

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -20
app.py CHANGED
@@ -3,11 +3,9 @@ import torch
3
  from transformers import pipeline
4
 
5
  # 1. Configuraci贸n del modelo
6
- # Reemplaza con tu ID real de Hugging Face
7
  model_id = "Fifthoply/AyudaAlan-0.1"
8
 
9
- print("Iniciando carga del modelo...")
10
- # Usamos el pipeline optimizado para CPU
11
  pipe = pipeline(
12
  "text-generation",
13
  model=model_id,
@@ -16,41 +14,42 @@ pipe = pipeline(
16
  )
17
 
18
  def chat_responder(message, history):
19
- # Construcci贸n manual del prompt ChatML
20
  prompt = "<|im_start|>system\nEres un asistente breve.<|im_end|>\n"
21
 
22
- # A帽adir historial previo
23
- for user_msg, assistant_msg in history:
24
- prompt += f"<|im_start|>user\n{user_msg}<|im_end|>\n<|im_start|>assistant\n{assistant_msg}<|im_end|>\n"
 
 
 
 
25
 
26
- # A帽adir pregunta actual
27
  prompt += f"<|im_start|>user\n{message}<|im_end|>\n<|im_start|>assistant\n"
28
 
29
- # Generaci贸n con par谩metros de seguridad
30
  outputs = pipe(
31
  prompt,
32
  max_new_tokens=25,
33
- do_sample=False, # Determinista para respuestas literales
34
  pad_token_id=pipe.tokenizer.pad_token_id,
35
  eos_token_id=pipe.tokenizer.eos_token_id
36
  )
37
 
38
- # Limpieza robusta del texto generado
39
  generated_text = outputs[0]['generated_text']
40
- # Buscamos la 煤ltima respuesta del asistente
41
- parts = generated_text.split("<|im_start|>assistant\n")
42
- final_response = parts[-1].split("<|im_end|>")[0].strip()
43
 
44
- return final_response
45
 
46
- # 2. Interfaz minimalista y compatible
47
- # Eliminamos argumentos experimentales para asegurar que compile a la primera
48
  demo = gr.ChatInterface(
49
  fn=chat_responder,
50
  title="Ayuda Alan 馃Ε",
51
- description="Asistente redundante basado en Qwen 2.5 0.5B.",
52
- examples=["驴C贸mo se toma agua?", "驴C贸mo se salta?", "驴C贸mo se escribe?"],
53
- cache_examples=False # Evita procesamientos pesados en la compilaci贸n
54
  )
55
 
56
  if __name__ == "__main__":
 
3
  from transformers import pipeline
4
 
5
  # 1. Configuraci贸n del modelo
 
6
  model_id = "Fifthoply/AyudaAlan-0.1"
7
 
8
+ print(f"Cargando {model_id} en CPU...")
 
9
  pipe = pipeline(
10
  "text-generation",
11
  model=model_id,
 
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
32
  outputs = pipe(
33
  prompt,
34
  max_new_tokens=25,
35
+ do_sample=False,
36
  pad_token_id=pipe.tokenizer.pad_token_id,
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__":