Eternos-Beta / app.py
Tanveerooooooo's picture
Update app.py
9c23cc3 verified
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("## 🐍 Eternos-Beta: The Coder's Friend ")
gr.Markdown("Put your python code and see the bugs ")
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()