CodeWiz / app.py
HarnithaS's picture
intial version 1
ca93b8e
raw
history blame
2.98 kB
import gradio as gr
import subprocess
from huggingface_hub import InferenceClient
client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
question = "Fibonacci series."
prompt = f"You are an expert in coding. your task is to explain error and give hint to understand question{question}.Do not give complete answer.Do not give implemmentation."
def respond(
message,
history: list[tuple[str, str]],
system_message,
max_tokens,
temperature,
top_p,
):
messages = [{"role": "system", "content": system_message}]
for val in history:
if val[0]:
messages.append({"role": "user", "content": val[0]})
if val[1]:
messages.append({"role": "assistant", "content": val[1]})
messages.append({"role": "user", "content": message})
response = ""
for message in client.chat_completion(
messages,
max_tokens=max_tokens,
stream=True,
temperature=temperature,
top_p=top_p,
):
token = message.choices[0].delta.content
response += token
yield response
def run_python_code(code):
try:
result = subprocess.run(['python3', '-c', code], capture_output=True, text=True)
output = result.stdout if result.stdout else result.stderr
return output
except Exception as e:
return str(e)
def AI_analyse(output):
try:
system_message = prompt
max_tokens = 512
temperature = 0.7
top_p = 0.95
message = prompt + "Please analyse the following code:\n" + output
response = respond(message, [], system_message, max_tokens, temperature, top_p)
for word in response:
res=str(word)
return res
except Exception as e:
return str(e)
with gr.Blocks() as demo:
gr.Markdown("# Code Wiz")
with gr.Row():
with gr.Column():
#question = gr.Markdown("### Question: Write a program to print Fibonacci series.")
gr.Textbox(label="Question: Write a program to print Fibonacci series.", lines=1,interactive=False)
with gr.Row():
with gr.Column():
code = gr.Code(label="Python Code", language="python", lines=5,elem_id="box")
run_button = gr.Button("Run")
with gr.Row():
with gr.Column():
output = gr.Textbox(label="Output", lines=3, max_lines=20, interactive=False, elem_id="box")
with gr.Row():
with gr.Column():
analyse_button = gr.Button("Analyse")
ai_suggestion = gr.Textbox(label="AI Suggest", lines=7, placeholder="AI suggestions will be displayed here", interactive=False,elem_id="box")
run_button.click(fn=run_python_code, inputs=code, outputs=output)
analyse_button.click(fn=AI_analyse, inputs=output, outputs=ai_suggestion)
# Add custom CSS
demo.css = """
#box {
overflow-y: scroll;
}
"""
if __name__ == "__main__":
demo.launch()