import os import torch import gradio as gr from transformers import AutoTokenizer, AutoModelForCausalLM MODEL_ID = "meta-llama/Llama-3.2-1B-Instruct" token = os.environ.get("HF_TOKEN") tokenizer = AutoTokenizer.from_pretrained(MODEL_ID, token=token) model = AutoModelForCausalLM.from_pretrained( MODEL_ID, token=token, torch_dtype=torch.float16 if torch.cuda.is_available() else torch.float32, device_map="auto" ) def chat(message, history): history = history or [] messages = [] for user_msg, bot_msg in history: messages.append({"role": "user", "content": user_msg}) messages.append({"role": "assistant", "content": bot_msg}) messages.append({"role": "user", "content": message}) input_text = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True ) inputs = tokenizer(input_text, return_tensors="pt").to(model.device) output = model.generate( **inputs, max_new_tokens=200, temperature=0.7, do_sample=True ) response = tokenizer.decode( output[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True ) return response demo = gr.ChatInterface(fn=chat) demo.launch()