Spaces:
Sleeping
Sleeping
import streamlit as st | |
import torch | |
from transformers import AutoModelForCausalLM, AutoTokenizer | |
# Load model and tokenizer | |
# model_name = "codellama/CodeLlama-7b-Python-hf" | |
model_name = "Qwen/Qwen2.5-Coder-0.5B-Instruct" | |
st.title("Python Code Helper") | |
try: | |
info = st.empty() | |
info.markdown("#### :red[Model is Loading....]") | |
model = AutoModelForCausalLM.from_pretrained(model_name, revision="main") | |
tokenizer = AutoTokenizer.from_pretrained(model_name, revision="main", use_fast=True) | |
# model = AutoModelForCausalLM.from_pretrained(model_name) | |
# tokenizer = AutoTokenizer.from_pretrained(model_name) | |
device = torch.device("cuda" if torch.cuda.is_available() else 'cpu') | |
model = model.to(device) | |
info.markdown("#### :green[Model Loaded Successfully]") | |
except Exception as e: | |
st.error(f"Error loading model: {e}") | |
st.stop() | |
# Input and form handling | |
st.markdown("### Python Code Generation") | |
with st.form(key="code_form"): | |
prompt = st.text_area("Enter your coding prompt:", height=200) | |
submit = st.form_submit_button("Generate Code") | |
if submit and prompt.strip(): | |
with st.spinner("Generating response..."): | |
try: | |
inputs = tokenizer(prompt, return_tensors="pt").to(device) | |
outputs = model.generate(**inputs, max_length=512, num_return_sequences=1) | |
response = tokenizer.decode(outputs[0], skip_special_tokens=True) | |
st.markdown("### Generated Code:") | |
st.code(response, language="python") | |
except Exception as e: | |
st.error(f"An error occurred: {e}") |