walidsobhie-code
init
a9b0b85
# Stack 2.9 HuggingFace Space
# Fine-tuned code assistant powered by Qwen2.5-Coder-1.5B
app = gr.Blocks(title="Stack 2.9")
with app:
gr.Markdown("""
# 馃捇 Stack 2.9 - Code Assistant
Fine-tuned on Stack Overflow data 路 1.5B parameters 路 Qwen2.5-Coder base
---
""")
with gr.Row():
with gr.Column(scale=3):
chatbot = gr.Chatbot(label="Stack 2.9", height=500)
msg = gr.Textbox(
label="Your message",
placeholder="Ask me to write or explain code...",
lines=3
)
with gr.Row():
submit_btn = gr.Button("Send", variant="primary")
clear_btn = gr.Button("Clear")
with gr.Column(scale=1):
gr.Markdown("### 鈿欙笍 Settings")
temperature = gr.Slider(0.1, 1.5, 0.7, label="Temperature")
max_tokens = gr.Slider(64, 2048, 1024, step=64, label="Max tokens")
system_prompt = gr.Textbox(
value="You are Stack 2.9, a helpful coding assistant.",
label="System prompt",
lines=2
)
gr.Markdown("### 馃搳 Model Info")
gr.Markdown("""
- **Base**: Qwen2.5-Coder-1.5B
- **Fine-tuned**: Stack Overflow Q&A
- **Context**: 32K tokens
- **License**: Apache 2.0
""")
def respond(message, history, system, temp, tokens):
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "my-ai-stack/Stack-2-9-finetuned"
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.float16 if torch.cuda.is_available() else torch.float32,
device_map="auto" if torch.cuda.is_available() else None,
trust_remote_code=True
)
messages = [{"role": "system", "content": system}, {"role": "user", "content": message}]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer([text], return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=tokens, temperature=temp, do_sample=True, pad_token_id=tokenizer.pad_token_id)
response = tokenizer.decode(outputs[0][len(inputs[0]):], skip_special_tokens=True)
return response
submit_btn.click(respond, inputs=[msg, chatbot, system_prompt, temperature, max_tokens], outputs=chatbot)
msg.submit(respond, inputs=[msg, chatbot, system_prompt, temperature, max_tokens], outputs=chatbot)
clear_btn.click(lambda: None, outputs=chatbot)
app.launch()