Fifthoply commited on
Commit
b15ea83
verified
1 Parent(s): bcf0622

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -19
app.py CHANGED
@@ -2,50 +2,55 @@ import gradio as gr
2
  import torch
3
  from transformers import pipeline
4
 
5
- # 1. Configurar el pipeline para CPU
6
- model_id = "Fifthoply/AyudaAlan-0.1" # modelo :3
 
7
 
8
- print("Cargando modelo Ayuda Alan en CPU...")
 
9
  pipe = pipeline(
10
  "text-generation",
11
  model=model_id,
12
- torch_dtype=torch.float32,
13
  device_map="cpu"
14
  )
15
 
16
  def chat_responder(message, history):
17
- # Formato ChatML: System + Historial (opcional) + Nueva pregunta
18
- prompt = f"<|im_start|>system\nEres un asistente breve.<|im_end|>\n"
19
 
20
- # A帽adimos historial si quieres que "recuerde", aunque para este modelo literal no es vital
21
  for user_msg, assistant_msg in history:
22
  prompt += f"<|im_start|>user\n{user_msg}<|im_end|>\n<|im_start|>assistant\n{assistant_msg}<|im_end|>\n"
23
 
 
24
  prompt += f"<|im_start|>user\n{message}<|im_end|>\n<|im_start|>assistant\n"
25
 
26
- # Generaci贸n
27
  outputs = pipe(
28
  prompt,
29
  max_new_tokens=25,
30
- do_sample=True,
31
- temperature=0.1, # Muy baja para que no invente cosas raras
32
  pad_token_id=pipe.tokenizer.pad_token_id,
33
  eos_token_id=pipe.tokenizer.eos_token_id
34
  )
35
 
36
- # Extraer solo la 煤ltima respuesta
37
- raw_text = outputs[0]['generated_text']
38
- respuesta = raw_text.split("assistant\n")[-1].strip().split("<|im_end|>")[0]
39
- return respuesta
 
 
 
40
 
41
- # 2. Interfaz tipo Chat
 
42
  demo = gr.ChatInterface(
43
  fn=chat_responder,
44
  title="Ayuda Alan 馃Ε",
45
- description="Hazme una pregunta y te dir茅 c贸mo se hace (literalmente).",
46
- examples=["驴C贸mo se toma agua?", "驴C贸mo se cruza la calle?", "驴C贸mo se duerme?"],
47
- type="messages", # Formato moderno de Gradio
48
- theme="glass"
49
  )
50
 
51
  if __name__ == "__main__":
 
2
  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 = "tu-usuario/nombre-de-tu-modelo"
8
 
9
+ print("Iniciando carga del modelo...")
10
+ # Usamos el pipeline optimizado para CPU
11
  pipe = pipeline(
12
  "text-generation",
13
  model=model_id,
14
+ model_kwargs={"torch_dtype": torch.float32},
15
  device_map="cpu"
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__":