File size: 2,171 Bytes
56d8167
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33dab62
3b3e3f0
56d8167
 
 
db68a15
 
56d8167
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4b25b86
56d8167
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import os
import requests
import gradio as gr


# ENV vars
API_URL = os.environ["API_URL"]
HF_TOKEN = os.environ["HF_TOKEN"]
headers = {"Authorization": f"Bearer {HF_TOKEN}"}

langs = ['C', 'C++', 'Java', 'Golang', 'Rust',
         'Javascript', 'PHP', 'Kotlin', 'HTML', 'Python', 'Bash', 'Ruby']

jsn_trail = {"parameters":
             {
                 "top_p": 0.9,
                 "max_new_tokens": 64,
                 "return_full_text": True,
                 "do_sample": True,
             },
             "options":
             {"use_cache": True,
              "wait_for_model": True,
              }, }


def post(jsn):
    response = requests.post(API_URL, headers=headers, json=jsn)
    return response.json()[0]["generated_text"]


def divider(char='=', length=50):
    return '\n' + char*length + '\n'


def get_solution(lang, error):
    jsn = {"inputs": "**Programming Language**:\n" + lang + divider() +
           '**Error**:\n'+error+divider()+"**Solution**:\n", **jsn_trail}
    return post(jsn)


def feedback(opt):
    return post({"inputs": opt, **jsn_trail})


demo = gr.Blocks()

with demo:
    gr.Markdown(
        "<h1><center>Paste your error to see solution</center></h1>")
    with gr.Row():
        dropdown = gr.Dropdown(value="Python",
                               choices=langs, label="Choose the language")
        # with gr.Column:
        error = gr.Textbox(label="Write the error output",
                                 value="Traceback (most recent call last):\nFile \" < stdin > \", line 1, in <module>\nNameError: name 'variable' is not defined", lines=6)

    with gr.Row():
        generated_txt = gr.Textbox(lines=5, interactive=False, label="Output")

    btn = gr.Button("Solve")
    btn.click(get_solution, inputs=[dropdown,
                                    error], outputs=generated_txt)
    feeedback_btn = gr.Button("Feedback")
    feeedback_btn.click(
        feedback, inputs=[generated_txt], outputs=generated_txt)
    with gr.Row():
        gr.Markdown(
            "![visitor badge](https://visitor-badge.glitch.me/badge?page_id=abdulmeLINK.debugger-bloom)")

demo.launch(enable_queue=True, debug=True)