Cristobal299 commited on
Commit
8f6e00b
·
verified ·
1 Parent(s): 5f2c8ee

Upload app.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. app.py +33 -14
app.py CHANGED
@@ -3,50 +3,69 @@ import os
3
  import gradio as gr
4
  import warnings
5
  from starlette.exceptions import StarletteDeprecationWarning
 
6
  warnings.filterwarnings("ignore", category=StarletteDeprecationWarning)
7
- import asyncio
8
- asyncio.set_event_loop_policy(asyncio.DefaultEventLoopPolicy())
9
  import groq
10
 
11
  # Load Groq API key from environment
12
  groq_api_key = os.getenv("GROQ_API_KEY")
13
  if not groq_api_key:
14
- groq_api_key = ""
15
- groq.api_key = groq_api_key
 
 
 
16
 
17
  def improve_code(user_code, language):
18
  """
19
  Sends the user code to Groq model and asks for an improved version.
20
  """
21
- system_prompt = f"You are an expert {language} developer. Refactor and improve the following code. Keep the same functionality but make it cleaner, more efficient and well commented."
 
 
 
22
  messages = [
23
  {"role": "system", "content": system_prompt},
24
- {"role": "user", "content": user_code}
25
  ]
 
26
  try:
27
- response = groq.ChatCompletion.create(
28
  model="mixtral-8x7b-32768",
29
  messages=messages,
30
  temperature=0.2,
31
  max_tokens=1024,
32
- n=1,
33
- stop=None,
34
  )
35
  improved = response.choices[0].message.content.strip()
36
  return improved
37
  except Exception as e:
38
  return f"Error: {str(e)}"
39
 
 
40
  # Build Gradio interface
41
  with gr.Blocks() as demo:
42
  gr.Markdown("# Code Improver")
43
- gr.Markdown("Enter your code and select the programming language. The model will return a cleaner version.")
 
 
44
  with gr.Row():
45
- code_input = gr.Textbox(label="Original Code", lines=15, placeholder="Paste your code here")
 
 
46
  language_dropdown = gr.Dropdown(
47
- choices=["Python", "JavaScript", "Java", "C++", "C#", "Go", "Ruby", "PHP"],
 
 
 
 
 
 
 
 
 
48
  value="Python",
49
- label="Language"
50
  )
51
  improve_button = gr.Button("Improve")
52
  output_box = gr.Textbox(label="Improved Code", lines=15)
@@ -54,7 +73,7 @@ with gr.Blocks() as demo:
54
  improve_button.click(
55
  fn=improve_code,
56
  inputs=[code_input, language_dropdown],
57
- outputs=output_box
58
  )
59
 
60
  demo.launch(server_name="0.0.0.0")
 
3
  import gradio as gr
4
  import warnings
5
  from starlette.exceptions import StarletteDeprecationWarning
6
+
7
  warnings.filterwarnings("ignore", category=StarletteDeprecationWarning)
8
+
 
9
  import groq
10
 
11
  # Load Groq API key from environment
12
  groq_api_key = os.getenv("GROQ_API_KEY")
13
  if not groq_api_key:
14
+ raise ValueError("GROQ_API_KEY environment variable not set")
15
+
16
+ # Initialise Groq client
17
+ client = groq.Client(api_key=groq_api_key)
18
+
19
 
20
  def improve_code(user_code, language):
21
  """
22
  Sends the user code to Groq model and asks for an improved version.
23
  """
24
+ system_prompt = (
25
+ f"You are an expert {language} developer. Refactor and improve the following code. "
26
+ "Keep the same functionality but make it cleaner, more efficient and well commented."
27
+ )
28
  messages = [
29
  {"role": "system", "content": system_prompt},
30
+ {"role": "user", "content": user_code},
31
  ]
32
+
33
  try:
34
+ response = client.chat.completions.create(
35
  model="mixtral-8x7b-32768",
36
  messages=messages,
37
  temperature=0.2,
38
  max_tokens=1024,
 
 
39
  )
40
  improved = response.choices[0].message.content.strip()
41
  return improved
42
  except Exception as e:
43
  return f"Error: {str(e)}"
44
 
45
+
46
  # Build Gradio interface
47
  with gr.Blocks() as demo:
48
  gr.Markdown("# Code Improver")
49
+ gr.Markdown(
50
+ "Enter your code and select the programming language. The model will return a cleaner version."
51
+ )
52
  with gr.Row():
53
+ code_input = gr.Textbox(
54
+ label="Original Code", lines=15, placeholder="Paste your code here"
55
+ )
56
  language_dropdown = gr.Dropdown(
57
+ choices=[
58
+ "Python",
59
+ "JavaScript",
60
+ "Java",
61
+ "C++",
62
+ "C#",
63
+ "Go",
64
+ "Ruby",
65
+ "PHP",
66
+ ],
67
  value="Python",
68
+ label="Language",
69
  )
70
  improve_button = gr.Button("Improve")
71
  output_box = gr.Textbox(label="Improved Code", lines=15)
 
73
  improve_button.click(
74
  fn=improve_code,
75
  inputs=[code_input, language_dropdown],
76
+ outputs=output_box,
77
  )
78
 
79
  demo.launch(server_name="0.0.0.0")