Spaces:
Running
Running
File size: 1,855 Bytes
76b10aa b15ea83 deee2a9 76b10aa 71ae54a 76b10aa be25bb0 76b10aa b15ea83 76b10aa be25bb0 71ae54a be25bb0 71ae54a be25bb0 76b10aa 71ae54a 76b10aa 71ae54a 76b10aa be25bb0 b15ea83 71ae54a b15ea83 71ae54a 76b10aa be25bb0 76b10aa be25bb0 76b10aa | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | import gradio as gr
import torch
from transformers import pipeline
# 1. Configuraci贸n del modelo
model_id = "Fifthoply/AyudaAlan-0.1"
print(f"Cargando {model_id} en CPU...")
pipe = pipeline(
"text-generation",
model=model_id,
dtype=torch.float32,
device_map="cpu"
)
def chat_responder(message, history):
prompt = "<|im_start|>system\nEres un asistente breve.<|im_end|>\n"
# Procesar historial con detecci贸n de formato autom谩tica
for msg in history:
# Caso 1: Formato de diccionario {"role": "...", "content": "..."}
if isinstance(msg, dict):
role = msg.get("role", "user")
content = msg.get("content", "")
prompt += f"<|im_start|>{role}\n{content}<|im_end|>\n"
# Caso 2: Formato de lista cl谩sica [user, assistant]
elif isinstance(msg, (list, tuple)):
u, a = msg
prompt += f"<|im_start|>user\n{u}<|im_end|>\n<|im_start|>assistant\n{a}<|im_end|>\n"
prompt += f"<|im_start|>user\n{message}<|im_end|>\n<|im_start|>assistant\n"
# Generaci贸n
outputs = pipe(
prompt,
max_new_tokens=25,
do_sample=False,
pad_token_id=pipe.tokenizer.pad_token_id,
eos_token_id=pipe.tokenizer.eos_token_id
)
# Extraer la respuesta (usando el 铆ndice [0] para asegurar el acceso al texto)
generated_text = outputs[0]['generated_text']
respuesta = generated_text.split("<|im_start|>assistant\n")[-1].split("<|im_end|>")[0].strip()
return respuesta
# 2. Interfaz de Usuario (Sin argumentos problem谩ticos)
demo = gr.ChatInterface(
fn=chat_responder,
title="Ayuda Alan 馃Ε",
description="Hazme una pregunta y te dir茅 c贸mo se hace.",
examples=["驴C贸mo se toma agua?", "驴C贸mo se salta?"],
)
if __name__ == "__main__":
demo.launch()
|