Tanveerooooooo commited on
Commit
9c05f9f
Β·
verified Β·
1 Parent(s): faead23

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -53
app.py CHANGED
@@ -1,18 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import gradio as gr
2
  import torch
3
  from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
4
 
5
- # Lightweight model for fast inference
6
- model_name = "Salesforce/codet5p-220m"
7
  tokenizer = AutoTokenizer.from_pretrained(model_name)
8
- model = AutoModelForSeq2SeqLM.from_pretrained(
9
- model_name,
10
- torch_dtype=torch.float16 if torch.cuda.is_available() else torch.float32
11
- )
12
  device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
13
  model.to(device)
14
 
15
- # Prompt templates
16
  language_prompts = {
17
  "Python": "Fix this Python code:\n",
18
  "C": "Fix this C code:\n",
@@ -20,65 +31,35 @@ language_prompts = {
20
  "JavaScript": "Fix this JavaScript code:\n"
21
  }
22
 
23
- # Debugger logic
24
  def eternos_debugger(code, error, language):
25
  if not code.strip():
26
  return "❌ Please provide code."
 
27
  prompt = f"{language_prompts[language]}{code}\nError:\n{error}\nCorrected code:\n"
28
  inputs = tokenizer(prompt, return_tensors="pt", truncation=True, max_length=512).to(device)
29
  outputs = model.generate(
30
  **inputs,
31
- max_new_tokens=128,
32
- temperature=0.1,
33
- do_sample=False,
34
- pad_token_id=tokenizer.pad_token_id or tokenizer.eos_token_id
35
  )
36
  response = tokenizer.decode(outputs[0], skip_special_tokens=True)
37
  return response.strip()
38
 
39
- # Reinforcement learning simulation
40
- def rl_simulation():
41
- import gym
42
- import numpy as np
43
-
44
- env = gym.make("FrozenLake-v1", is_slippery=False)
45
- Q = np.zeros([env.observation_space.n, env.action_space.n])
46
- episodes = 500
47
- learning_rate = 0.8
48
- discount_factor = 0.95
49
-
50
- for ep in range(episodes):
51
- state = env.reset()[0]
52
- done = False
53
- while not done:
54
- action = np.argmax(Q[state, :] + np.random.randn(1, env.action_space.n) * (1.0 / (ep + 1)))
55
- new_state, reward, done, _, _ = env.step(action)
56
- Q[state, action] += learning_rate * (reward + discount_factor * np.max(Q[new_state, :]) - Q[state, action])
57
- state = new_state
58
-
59
- return "🧠 RL training complete! Agent learned to navigate FrozenLake."
60
-
61
- # UI Layout (no background CSS for white theme)
62
- with gr.Blocks(theme=gr.themes.Soft()) as demo:
63
- with gr.Tab("Eternos Debugger"):
64
- gr.Markdown("## βš™οΈ Eternos β€” AI Code Debugger")
65
- gr.Markdown("Supports Python, C, C++, JavaScript β€” powered by CodeT5p (Fast Edition)")
66
-
67
- with gr.Row():
68
- code_input = gr.Textbox(label="πŸ“ Your Code", lines=12)
69
- error_input = gr.Textbox(label="⚠️ Error Message (optional)", lines=4)
70
 
71
- language_input = gr.Dropdown(["Python", "C", "C++", "JavaScript"], label="🌐 Language", value="Python")
72
- output_code = gr.Code(label="βœ… Suggested Fix")
73
- run_btn = gr.Button("πŸ› οΈ Fix Code")
74
 
75
- run_btn.click(fn=eternos_debugger, inputs=[code_input, error_input, language_input], outputs=output_code)
 
 
76
 
77
- with gr.Tab("Reinforcement Learning Demo"):
78
- gr.Markdown("## πŸ€– Reinforcement Learning Example")
79
- gr.Markdown("Simulates a Q-learning agent on FrozenLake.")
80
- rl_output = gr.Textbox(label="πŸ”„ Output", lines=4)
81
- rl_btn = gr.Button("🏁 Run RL Simulation")
82
- rl_btn.click(fn=rl_simulation, inputs=[], outputs=rl_output)
83
 
84
  demo.launch()
 
1
+ # Copyright (c) 2008-2021, Hazelcast, Inc. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
  import gradio as gr
16
  import torch
17
  from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
18
 
19
+ # Model configuration
20
+ model_name = "Salesforce/codet5p-770m"
21
  tokenizer = AutoTokenizer.from_pretrained(model_name)
22
+ model = AutoModelForSeq2SeqLM.from_pretrained(model_name)
 
 
 
23
  device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
24
  model.to(device)
25
 
26
+ # Prompts for different languages
27
  language_prompts = {
28
  "Python": "Fix this Python code:\n",
29
  "C": "Fix this C code:\n",
 
31
  "JavaScript": "Fix this JavaScript code:\n"
32
  }
33
 
34
+ # Debugging logic
35
  def eternos_debugger(code, error, language):
36
  if not code.strip():
37
  return "❌ Please provide code."
38
+
39
  prompt = f"{language_prompts[language]}{code}\nError:\n{error}\nCorrected code:\n"
40
  inputs = tokenizer(prompt, return_tensors="pt", truncation=True, max_length=512).to(device)
41
  outputs = model.generate(
42
  **inputs,
43
+ max_new_tokens=256,
44
+ temperature=0.2,
45
+ do_sample=False
 
46
  )
47
  response = tokenizer.decode(outputs[0], skip_special_tokens=True)
48
  return response.strip()
49
 
50
+ # UI setup
51
+ with gr.Blocks(theme=gr.themes.Soft(), css=".gradio-container {background-color: #cbedec;}") as demo:
52
+ gr.Markdown("## βš™οΈ Eternos β€” AI Code Debugger")
53
+ gr.Markdown("Supports Python, C, C++, JavaScript β€” powered by CodeT5p")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
 
55
+ with gr.Row():
56
+ code_input = gr.Textbox(label="πŸ“ Your Code", lines=12)
57
+ error_input = gr.Textbox(label="⚠️ Error Message (optional)", lines=4)
58
 
59
+ language_input = gr.Dropdown(["Python", "C", "C++", "JavaScript"], label="🌐 Language", value="Python")
60
+ output_code = gr.Code(label="βœ… Suggested Fix")
61
+ run_btn = gr.Button("πŸ› οΈ Fix Code")
62
 
63
+ run_btn.click(fn=eternos_debugger, inputs=[code_input, error_input, language_input], outputs=output_code)
 
 
 
 
 
64
 
65
  demo.launch()