Spaces:
Runtime error
Runtime error
File size: 1,696 Bytes
018ef1a 258de43 d9b292a ddceb29 3a4c3b4 c4e4630 9a45ada e362ba9 c4e4630 ddceb29 d383b03 ddceb29 c4e4630 258de43 ddceb29 258de43 c4e4630 018ef1a c4e4630 9a45ada ddceb29 c4e4630 ddceb29 c4e4630 ddceb29 d383b03 c4e4630 d0f41e0 018ef1a c4e4630 018ef1a c4e4630 018ef1a d9b292a |
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 59 60 61 62 |
import gradio as gr
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
MODEL = "prithivMLmods/Llama-SmolTalk-3.2-1B-Instruct"
# Charger le tokenizer
tokenizer = AutoTokenizer.from_pretrained(MODEL)
# Charger le modèle en 8 bits
model = AutoModelForCausalLM.from_pretrained(
MODEL,
device_map="auto",
load_in_8bit=True
)
# Pipeline
chatbot = pipeline(
"text-generation",
model=model,
tokenizer=tokenizer,
device_map="auto"
)
# Prompt système
system_prompt = (
"Tu es Aria, une IA gentille, claire et polie. "
"Réponds toujours en phrases complètes. "
"Ne te lances pas dans un jeu de rôle, ne répète pas les messages précédents, "
"et donne uniquement ta réponse."
)
def chat(message, history):
history = history or []
context = "\n".join([f"{user}\n{bot}" for user, bot in history[-3:]])
prompt = f"{system_prompt}\n{context}\n{message}\nRéponse:"
resp = chatbot(
prompt,
max_new_tokens=250, # plus long pour éviter les coupures
do_sample=True,
temperature=0.7,
top_p=0.9,
repetition_penalty=1.1
)[0]["generated_text"]
# Couper dès qu'il repart sur un nouveau tour
reply = resp.split("Réponse:")[-1].strip()
reply = reply.split("Utilisateur:")[0].strip()
history.append((message, reply))
return history, history
with gr.Blocks() as demo:
chatbot_ui = gr.Chatbot()
state = gr.State([]) # sauvegarde de l'historique
msg = gr.Textbox(placeholder="Écris un message...")
msg.submit(chat, [msg, state], [chatbot_ui, state])
msg.submit(lambda: "", None, msg) # reset input après envoi
demo.launch()
|