Eternos / app.py
Tanveerooooooo's picture
Update app.py
2c5e1cd verified
raw
history blame
2.34 kB
import gradio as gr
import torch
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
# Use light model for fast inference
model_name = "Salesforce/codet5-small"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
# Auto-detect device
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)
# Supported languages and file extensions
language_prompts = {
"Python": "Fix the following Python code and provide the corrected version:",
"C": "Fix the following C code and provide the corrected version:",
"C++": "Fix the following C++ code and provide the corrected version:",
"JavaScript": "Fix the following JavaScript code and provide the corrected version:"
}
def eternos_debugger(code, error, language):
if not code.strip() or not language.strip():
return "❌ Please enter code and select a language."
prompt = f"{language_prompts[language]}\n{code}\nError:\n{error}\nCorrected Code:"
inputs = tokenizer(prompt, return_tensors="pt", truncation=True, max_length=512).to(device)
with torch.no_grad():
outputs = model.generate(
**inputs,
max_length=128,
num_beams=2,
early_stopping=True,
temperature=0.7
)
fixed_code = tokenizer.decode(outputs[0], skip_special_tokens=True)
return fixed_code.strip()
# Gradio Interface
with gr.Blocks(theme=gr.themes.Monochrome(), css="body {background-color: black !important;}") as demo:
gr.Markdown("<h1 style='color: white;'>βš™οΈ Eternos β€” AI Code Debugger</h1>")
gr.Markdown("<p style='color: grey;'>Fast AI-powered debugger for Python, C, C++, and JavaScript</p>")
with gr.Row():
code_input = gr.Textbox(label="πŸ“ Your Code", lines=15, placeholder="Paste your buggy code here...")
error_input = gr.Textbox(label="⚠️ Error Message", lines=4, placeholder="Paste error (optional)...")
language_input = gr.Dropdown(choices=["Python", "C", "C++", "JavaScript"], label="🌐 Language", value="Python")
output_code = gr.Code(label="βœ… Suggested Fix")
run_button = gr.Button("πŸ› οΈ Fix Code")
run_button.click(fn=eternos_debugger, inputs=[code_input, error_input, language_input], outputs=output_code)
demo.launch()