Tanveerooooooo commited on
Commit
ace22c9
Β·
verified Β·
1 Parent(s): 3ee3486

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +44 -23
app.py CHANGED
@@ -1,23 +1,40 @@
 
1
  import torch
2
  from transformers import AutoTokenizer, AutoModelForCausalLM
3
- import gradio as gr
4
 
5
- # Load DeepSeek Coder model
6
- model_id = "deepseek-ai/deepseek-coder-1.3b-base"
7
- tokenizer = AutoTokenizer.from_pretrained(model_id)
8
- model = AutoModelForCausalLM.from_pretrained(model_id, trust_remote_code=True)
9
- device = "cuda" if torch.cuda.is_available() else "cpu"
10
  model.to(device)
11
 
12
- # Debug function
13
- def debug_code(code, language):
14
- prompt = f"### Task: Fix and explain the following {language} code:\n{code}\n### Output:\n"
15
- inputs = tokenizer(prompt, return_tensors="pt").to(device)
16
- outputs = model.generate(**inputs, max_new_tokens=300, pad_token_id=tokenizer.eos_token_id)
17
- response = tokenizer.decode(outputs[0], skip_special_tokens=True)
18
- return response[len(prompt):].strip()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
 
20
- # Gradio UI with white theme and modern layout
21
  with gr.Blocks(css="""
22
  #logo-container {
23
  display: flex;
@@ -41,16 +58,20 @@ with gr.Blocks(css="""
41
  }
42
  """) as demo:
43
  with gr.Column():
44
- with gr.Row(elem_id="logo-container"):
45
- gr.Image(value="763f8a67-91ed-4f76-9296-d64a30676efd.png", width=100, height=100, show_label=False, show_download_button=False)
46
- gr.Markdown("<div class='title-text'> Eternos Beta β€” The Coder's friend</div>")
47
 
48
- language = gr.Dropdown(["Python", "C", "C++", "JavaScript"], label="Select Programming Language", value="Python")
49
- code_input = gr.Textbox(lines=12, label="Paste Buggy Code", placeholder="Paste or write buggy code here...")
50
- output = gr.Textbox(label="Fixed Code & Explanation", lines=14)
 
 
 
 
 
 
 
 
 
51
 
52
- debug_btn = gr.Button("🧠 Debug Code")
53
- debug_btn.click(fn=debug_code, inputs=[code_input, language], outputs=output)
54
 
55
- # Launch the app
56
  demo.launch()
 
1
+ import gradio as gr
2
  import torch
3
  from transformers import AutoTokenizer, AutoModelForCausalLM
 
4
 
5
+ # Load StarCoder model
6
+ model_name = "bigcode/starcoder"
7
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
8
+ model = AutoModelForCausalLM.from_pretrained(model_name)
9
+ device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
10
  model.to(device)
11
 
12
+ # Prompts per language
13
+ language_prompts = {
14
+ "Python": "### Fix Python code:\n### Buggy code:\n",
15
+ "C": "### Fix C code:\n### Buggy code:\n",
16
+ "C++": "### Fix C++ code:\n### Buggy code:\n",
17
+ "JavaScript": "### Fix JavaScript code:\n### Buggy code:\n"
18
+ }
19
+
20
+ # Debugging function
21
+ def eternos_debugger(code, error, language):
22
+ if not code.strip():
23
+ return "❌ Please provide code."
24
+ prompt = f"{language_prompts[language]}{code}\n### Error:\n{error}\n### Corrected code:\n"
25
+ inputs = tokenizer(prompt, return_tensors="pt", truncation=True, max_length=8192).to(device)
26
+ outputs = model.generate(
27
+ **inputs,
28
+ max_new_tokens=256,
29
+ temperature=0.2,
30
+ top_p=0.95,
31
+ do_sample=False,
32
+ pad_token_id=tokenizer.eos_token_id
33
+ )
34
+ resp = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True)
35
+ return resp.strip()
36
 
37
+ # Gradio UI
38
  with gr.Blocks(css="""
39
  #logo-container {
40
  display: flex;
 
58
  }
59
  """) as demo:
60
  with gr.Column():
 
 
 
61
 
62
+
63
+ gr.Markdown("<div class='title-text'> Eternos Beta β€” A Coder's Friend </div>")
64
+
65
+ with gr.Row():
66
+ language_input = gr.Dropdown(["Python", "C", "C++", "JavaScript"], label="🌐 Language", value="Python")
67
+
68
+ with gr.Row():
69
+ code_input = gr.Textbox(label="πŸ“ Your Code", lines=12, placeholder="Paste or write buggy code here...")
70
+ error_input = gr.Textbox(label="⚠️ Error Message (optional)", lines=4, placeholder="Paste the error traceback here (optional)")
71
+
72
+ run_btn = gr.Button("🧠 Fix Code")
73
+ output_code = gr.Code(label="βœ… Suggested Fix")
74
 
75
+ run_btn.click(fn=eternos_debugger, inputs=[code_input, error_input, language_input], outputs=output_code)
 
76
 
 
77
  demo.launch()