import gradio as gr from transformers import AutoModelForCausalLM, AutoTokenizer, AutoModelForSeq2SeqLM def greet(input): model_name = "Qwen/Qwen3-8B" # load the tokenizer and the model tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained(model_name) tokenizer.save_pretrained("./qwen3") model.save_pretrained("./qwen3") # prepare the model input prompt = "Give me a short introduction to large language model." prompt = input messages = [{"role": "user", "content": prompt}] text = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True, enable_thinking=True, # Switches between thinking and non-thinking modes. Default is True. ) model_inputs = tokenizer([text], return_tensors="pt").to(model.device) # conduct text completion generated_ids = model.generate(**model_inputs, max_new_tokens=32768) output_ids = generated_ids[0][len(model_inputs.input_ids[0]) :].tolist() # parsing thinking content try: # rindex finding 151668 () index = len(output_ids) - output_ids[::-1].index(151668) except ValueError: index = 0 thinking_content = tokenizer.decode( output_ids[:index], skip_special_tokens=True ).strip("\n") content = tokenizer.decode(output_ids[index:], skip_special_tokens=True).strip("\n") # print("thinking content:", thinking_content) # print("content:", content) return "thinking content:" + thinking_content + "\n" + "content:" + content demo = gr.Interface(fn=greet, inputs="text", outputs="text") demo.launch()