sugiv commited on
Commit
debd5cf
·
1 Parent(s): beaa004

Adding and testing explain solution

Browse files
Files changed (1) hide show
  1. app.py +20 -0
app.py CHANGED
@@ -159,6 +159,18 @@ def random_problem(token: str) -> Dict[str, Any]:
159
 
160
  return {"problem": problem}
161
 
 
 
 
 
 
 
 
 
 
 
 
 
162
  # Create Gradio interfaces
163
  generate_interface = gr.Interface(
164
  fn=generate_solution,
@@ -176,6 +188,14 @@ random_problem_interface = gr.Interface(
176
  description="Provide a valid JWT token to get a random LeetCode problem."
177
  )
178
 
 
 
 
 
 
 
 
 
179
  demo = gr.TabbedInterface(
180
  [generate_interface, explain_interface, random_problem_interface],
181
  ["Generate Solution", "Explain Solution", "Random Problem"]
 
159
 
160
  return {"problem": problem}
161
 
162
+ def explain_solution(token: str) -> Dict[str, Any]:
163
+ if not verify_token(token):
164
+ return {"error": "Invalid token"}
165
+
166
+ if token not in user_data or not user_data[token].get("solution"):
167
+ return {"error": "No solution available to explain. Please generate a solution first."}
168
+
169
+ problem = user_data[token]["problem"]
170
+ solution = user_data[token]["solution"]
171
+
172
+ return generate_explanation(problem, solution, token)
173
+
174
  # Create Gradio interfaces
175
  generate_interface = gr.Interface(
176
  fn=generate_solution,
 
188
  description="Provide a valid JWT token to get a random LeetCode problem."
189
  )
190
 
191
+ explain_interface = gr.Interface(
192
+ fn=explain_solution,
193
+ inputs=gr.Textbox(label="JWT Token"),
194
+ outputs=gr.JSON(),
195
+ title="Explain Solution API",
196
+ description="Provide a valid JWT token to get an explanation of the last generated solution."
197
+ )
198
+
199
  demo = gr.TabbedInterface(
200
  [generate_interface, explain_interface, random_problem_interface],
201
  ["Generate Solution", "Explain Solution", "Random Problem"]