goomafia's picture
Upload 2 files
12a9f77 verified
import gradio as gr
from transformers import AutoModelForCausalLM, AutoTokenizer, TextIteratorStreamer
import torch
from threading import Thread
MODEL_ID = "uncensoredai/UncensoredLM-DeepSeek-R1-Distill-Qwen-14B"
# โหลดโมเดล
tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
model = AutoModelForCausalLM.from_pretrained(
MODEL_ID,
torch_dtype=torch.float16,
device_map="auto"
)
def generate_text(prompt, temperature=0.8, top_p=0.9, max_new_tokens=512):
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
streamer = TextIteratorStreamer(tokenizer, skip_prompt=True)
generation_kwargs = dict(
**inputs,
streamer=streamer,
temperature=temperature,
top_p=top_p,
do_sample=True,
max_new_tokens=max_new_tokens
)
thread = Thread(target=model.generate, kwargs=generation_kwargs)
thread.start()
output = ""
for new_text in streamer:
output += new_text
yield output
with gr.Blocks(title="Uncensored DeepSeek Qwen 14B") as demo:
gr.Markdown("## 🧠 Uncensored DeepSeek Qwen 14B")
gr.Markdown("Thai & English Chatbot – Powered by Qwen 14B Distilled Model")
with gr.Row():
with gr.Column(scale=3):
prompt = gr.Textbox(label="Input", placeholder="พิมพ์ข้อความที่นี่...", lines=3)
temperature = gr.Slider(0.1, 1.5, value=0.8, step=0.1, label="Temperature")
top_p = gr.Slider(0.1, 1.0, value=0.9, step=0.05, label="Top P")
max_new_tokens = gr.Slider(64, 2048, value=512, step=64, label="Max New Tokens")
btn = gr.Button("Generate")
with gr.Column(scale=5):
output = gr.Textbox(label="AI Response", lines=20)
btn.click(generate_text, inputs=[prompt, temperature, top_p, max_new_tokens], outputs=output)
demo.queue().launch()