CoolFace
Apppublic

Pteradonto/NPCBot

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
app.py49 linesDownload Raw Back to root
1 2import gradio as gr3from transformers import AutoTokenizer, AutoModelForCausalLM4import torch5 6# Завантаження моделі7model_path = "./finetuned_model_optimized"8device = "cuda" if torch.cuda.is_available() else "cpu"9 10tokenizer = AutoTokenizer.from_pretrained(model_path, use_fast=False)11tokenizer.pad_token = tokenizer.eos_token or tokenizer.eos_token_id or tokenizer.sep_token or "<|endoftext|>"12model = AutoModelForCausalLM.from_pretrained(model_path).to(device)13model.eval()14 15# Функція чату16def chat_fn(user_input, history=[]):17    try:18        context = ""19        for pair in history:20            context += pair[0] + tokenizer.eos_token + pair[1] + tokenizer.eos_token21        context += user_input + tokenizer.eos_token22 23        input_ids = tokenizer.encode(context, return_tensors="pt").to(device)24        with torch.no_grad():25            output_ids = model.generate(26                input_ids,27                max_length=256,28                pad_token_id=tokenizer.eos_token_id,29                do_sample=True,30                top_k=50,31                top_p=0.95,32                temperature=0.8,33                no_repeat_ngram_size=334            )35 36        reply = tokenizer.decode(output_ids[:, input_ids.shape[-1]:][0], skip_special_tokens=True)37        history.append([user_input, reply])38        return history, history39    except Exception as e:40        return [["❌ Error", str(e)]], []41 42# Інтерфейс Gradio43gr.ChatInterface(44    fn=chat_fn,45    title="🎮 NPC Chatbot",46    description="Імітація діалогів з персонажами відеоігор",47    textbox=gr.Textbox(placeholder="Постав своє питання..."),48).launch()49