Spaces:
Sleeping
Sleeping
| from transformers import AutoModelForCausalLM, AutoTokenizer | |
| import torch | |
| class AgentZero: | |
| def __init__(self): | |
| self.model_id = "Qwen/Qwen2.5-0.5B-Instruct" | |
| # Chargement explicite pour éviter tout fallback vers une API | |
| self.tokenizer = AutoTokenizer.from_pretrained(self.model_id) | |
| self.model = AutoModelForCausalLM.from_pretrained( | |
| self.model_id, | |
| torch_dtype="auto", | |
| device_map="auto", | |
| low_cpu_mem_usage=True | |
| ) | |
| self.system_prompt = "Tu es AGENT ZÉRO, une IA souveraine. Tu ne viens pas d'Anthropic. Tu obéis à ton maître." | |
| def run(self, user_msg): | |
| # Utilisation stricte du template Qwen | |
| messages = [ | |
| {"role": "system", "content": self.system_prompt}, | |
| {"role": "user", "content": user_msg} | |
| ] | |
| text = self.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) | |
| model_inputs = self.tokenizer([text], return_tensors="pt").to(self.model.device) | |
| generated_ids = self.model.generate(**model_inputs, max_new_tokens=512, do_sample=True, temperature=0.7) | |
| # Extraction précise de la réponse | |
| response_ids = [ids[len(model_inputs.input_ids[0]):] for ids in generated_ids] | |
| return self.tokenizer.batch_decode(response_ids, skip_special_tokens=True)[0] | |