Spaces:
Sleeping
Sleeping
import gradio as gr | |
from transformers import AutoModelForCausalLM, AutoTokenizer | |
import torch | |
# Load the model and tokenizer | |
model_name = "Qwen/Qwen2.5-Coder-32B-Instruct" | |
model = AutoModelForCausalLM.from_pretrained( | |
model_name, | |
torch_dtype="auto", | |
device_map="auto" | |
) | |
tokenizer = AutoTokenizer.from_pretrained(model_name) | |
# Function to interact with the model | |
def chat_with_model(user_input): | |
prompt = user_input | |
messages = [ | |
{"role": "system", "content": "You are Qwen, created by Alibaba Cloud. You are a helpful assistant."}, | |
{"role": "user", "content": prompt} | |
] | |
# Use apply_chat_template to format messages for the model | |
text = tokenizer.apply_chat_template( | |
messages, | |
tokenize=False, | |
add_generation_prompt=True | |
) | |
# Tokenize the input and send it to the model | |
model_inputs = tokenizer([text], return_tensors="pt").to(model.device) | |
# Generate the response from the model | |
generated_ids = model.generate( | |
**model_inputs, | |
max_new_tokens=512 | |
) | |
# Decode the generated response | |
generated_ids = [ | |
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids) | |
] | |
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0] | |
return response | |
# Create the Gradio interface | |
iface = gr.Interface( | |
fn=chat_with_model, | |
inputs=gr.Textbox(lines=2, placeholder="Ask me anything..."), | |
outputs="text", | |
title="Qwen2.5-Coder Chatbot", | |
description="A chatbot using Qwen2.5-Coder for code generation, reasoning, and fixing tasks." | |
) | |
# Launch the interface | |
iface.launch() |