Spaces:
Sleeping
Sleeping
import gradio as gr | |
import torch | |
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM | |
from threading import Thread | |
import time | |
# Load small and fast model for Python code debugging | |
MODEL_NAME = "Salesforce/codet5-small" | |
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME) | |
model = AutoModelForSeq2SeqLM.from_pretrained(MODEL_NAME) | |
device = torch.device("cuda" if torch.cuda.is_available() else "cpu") | |
model.to(device) | |
def debug_python(code, progress=gr.State(0)): | |
if not code.strip(): | |
return "β Please enter Python code.", 0 | |
prompt = f"Fix this Python code:\n{code}\nCorrected code:\n" | |
inputs = tokenizer(prompt, return_tensors="pt", truncation=True, max_length=512).to(device) | |
def update_progress(): | |
for i in range(1, 101): | |
time.sleep(0.005) # Faster loading feel | |
progress.value = i | |
Thread(target=update_progress).start() | |
outputs = model.generate(**inputs, max_new_tokens=256, temperature=0.2, do_sample=False) | |
response = tokenizer.decode(outputs[0], skip_special_tokens=True) | |
progress.value = 100 | |
return response.strip(), 100 | |
with gr.Blocks(css=".gradio-container {background-color: #cbedec;}") as app: | |
gr.Markdown("## π Python Code Debugger (Fast Mode)") | |
gr.Markdown("Just paste your Python code. The AI will fix any issues it detects.") | |
code_box = gr.Textbox(label="π Your Python Code", lines=12) | |
progress_bar = gr.Slider(minimum=0, maximum=100, value=0, interactive=False, label="β³ Progress (%)") | |
output = gr.Code(label="β Suggested Fix") | |
fix_btn = gr.Button("π οΈ Debug Code") | |
fix_btn.click(fn=debug_python, inputs=[code_box], outputs=[output, progress_bar]) | |
app.launch() | |