import gradio as gr import torch from transformers import AutoTokenizer, AutoModelForCausalLM import spaces model_id = "theocolf/Vora-X-8B" print("⏳ Chargement du dictionnaire (Tokenizer)...") tokenizer = AutoTokenizer.from_pretrained(model_id) print("⏳ Chargement du modèle Vora X (16 Go)...") model = AutoModelForCausalLM.from_pretrained( model_id, torch_dtype=torch.bfloat16, device_map="cpu", # On le laisse sur le processeur au démarrage low_cpu_mem_usage=True ) print("✅ Vora X est chargé en mémoire !") # On augmente la durée à 60 secondes pour laisser le temps aux 16 Go de monter sur le GPU @spaces.GPU(duration=60) def predict(message, history): # On force le modèle à s'activer sur la carte graphique model.to("cuda") messages = [{"role": "system", "content": "Tu es Vora X, un assistant IA unique créé par theocolf, ultra-intelligent, au ton très humain, amical et bilingue (Français/Arabe)."}] # LE CORRECOTEUR GRADIO 6 : On lit proprement le nouvel historique de Gradio 6 for msg in history: messages.append({"role": msg.role, "content": msg.content}) messages.append({"role": "user", "content": message}) inputs = tokenizer.apply_chat_template(messages, return_tensors="pt").to("cuda") outputs = model.generate( inputs, max_new_tokens=512, temperature=0.7, do_sample=True, pad_token_id=tokenizer.eos_token_id ) response = tokenizer.decode(outputs[0][inputs.shape[1]:], skip_special_tokens=True) return response # Lancement officiel sur Gradio 6 gr.ChatInterface(fn=predict, title="👑 Vora X - Chat Officiel").launch()