|
import gradio as gr |
|
|
|
def fix_code(code_input, language, fix_mode): |
|
""" |
|
Placeholder function to 'fix' the code. |
|
In a real scenario, you'd integrate your LLM or custom logic here. |
|
""" |
|
|
|
fixed_code = f"# Fixed [{language} - {fix_mode}]\n" + code_input |
|
explanation = ( |
|
"Here's a mock explanation of what was fixed:\n" |
|
"1. Analyzed the code.\n" |
|
"2. Applied debugging/optimization.\n" |
|
"3. Returned updated code." |
|
) |
|
return explanation, fixed_code |
|
|
|
def run_code(code_input, language): |
|
""" |
|
Run the corrected code in a sandbox or a safe environment. |
|
Here, we just pretend to run it and return a mock output. |
|
|
|
IMPORTANT: Executing arbitrary code can be dangerous. |
|
In real-world apps, you need a secure sandbox environment. |
|
""" |
|
|
|
return f"Running [{language}] code...\nOutput:\nHello from the mock run!\n\nCode:\n{code_input}" |
|
|
|
def chat_mode_interaction(user_input): |
|
""" |
|
Example 'Chat Mode' function. |
|
""" |
|
|
|
return f"You said: {user_input}\n\nAI says: This is a placeholder chat response." |
|
|
|
|
|
with gr.Blocks(title="AI Code Doctor - Fix, Optimize & Run") as demo: |
|
gr.Markdown( |
|
""" |
|
# AI Code Doctor - Fix, Optimize & Run |
|
**The Ultimate Debugging Machine** |
|
""" |
|
) |
|
|
|
|
|
with gr.Tab("Code Debug"): |
|
with gr.Row(): |
|
with gr.Column(): |
|
language = gr.Dropdown( |
|
label="Select Language", |
|
choices=["Python", "JavaScript", "C++", "Mistral", "Any"], |
|
value="Python" |
|
) |
|
fix_mode = gr.Dropdown( |
|
label="Select Fix Mode", |
|
choices=["Fix Errors Only", "Fix + Optimize", "Fix + Explain"], |
|
value="Fix + Explain" |
|
) |
|
code_input = gr.Textbox( |
|
label="Paste Your Code", |
|
lines=10, |
|
placeholder="Enter code here..." |
|
) |
|
|
|
|
|
fix_button = gr.Button("⚙️ Fix Code") |
|
|
|
|
|
ai_explanation = gr.Textbox( |
|
label="AI Explanation", |
|
lines=5, |
|
interactive=False |
|
) |
|
corrected_code = gr.Textbox( |
|
label="Corrected Code", |
|
lines=10, |
|
interactive=False |
|
) |
|
|
|
with gr.Column(): |
|
execution_output = gr.Textbox( |
|
label="Execution Output", |
|
lines=15, |
|
interactive=False |
|
) |
|
run_button = gr.Button("▶️ Run My Code") |
|
|
|
|
|
fix_button.click( |
|
fix_code, |
|
inputs=[code_input, language, fix_mode], |
|
outputs=[ai_explanation, corrected_code] |
|
) |
|
run_button.click( |
|
run_code, |
|
inputs=[corrected_code, language], |
|
outputs=execution_output |
|
) |
|
|
|
with gr.Tab("Chat Mode"): |
|
chat_input = gr.Textbox(label="Enter your message", lines=2) |
|
chat_output = gr.Textbox(label="Chat Output", lines=5, interactive=False) |
|
chat_button = gr.Button("Send") |
|
|
|
chat_button.click( |
|
chat_mode_interaction, |
|
inputs=chat_input, |
|
outputs=chat_output |
|
) |
|
|
|
demo.launch() |
|
|