MrSimple01 commited on
Commit
b8807d1
·
verified ·
1 Parent(s): 8bd4ebb

new gradio

Browse files
Files changed (1) hide show
  1. app.py +13 -43
app.py CHANGED
@@ -373,16 +373,22 @@ def format_quiz_for_display(results):
373
  return "\n".join(output)
374
 
375
 
376
-
377
  def analyze_document(document_text: str, api_key: str) -> tuple:
378
  os.environ["GOOGLE_API_KEY"] = api_key
379
  try:
380
  results = process_document_with_quiz(document_text)
381
  formatted_output = format_quiz_for_display(results)
382
- return formatted_output, results
 
 
 
 
 
 
 
383
  except Exception as e:
384
  error_msg = f"Error processing document: {str(e)}"
385
- return error_msg, None
386
 
387
  with gr.Blocks(title="Quiz Generator") as app:
388
  gr.Markdown("# Quiz Generator")
@@ -406,49 +412,13 @@ with gr.Blocks(title="Quiz Generator") as app:
406
  label="Analysis Results",
407
  lines=20
408
  )
409
-
410
- with gr.Row():
411
- json_btn = gr.Button("Download JSON")
412
- txt_btn = gr.Button("Download TXT")
413
-
414
- # Create a state to store results
415
- results_state = gr.State()
416
-
417
- # Function to handle analysis and store results in state
418
- def analyze_and_store(text, key):
419
- formatted, results = analyze_document(text, key)
420
- return formatted, results
421
-
422
- # Function to prepare JSON for download
423
- def prepare_json_download(results):
424
- if results is None:
425
- return None
426
- return {"filename": "analysis_results.json", "content": json.dumps(results, indent=2, ensure_ascii=False)}
427
 
428
- # Function to prepare TXT for download
429
- def prepare_txt_download(text):
430
- if not text or text.startswith("Error"):
431
- return None
432
- return {"filename": "analysis_results.txt", "content": text}
433
-
434
- # Connect the analyze button
435
  analyze_btn.click(
436
- fn=analyze_and_store,
437
  inputs=[input_text, api_key],
438
- outputs=[output_results, results_state]
439
- )
440
-
441
- # Connect download buttons
442
- json_btn.click(
443
- fn=prepare_json_download,
444
- inputs=[results_state],
445
- outputs=[gr.File(label="Download JSON")]
446
- )
447
-
448
- txt_btn.click(
449
- fn=prepare_txt_download,
450
- inputs=[output_results],
451
- outputs=[gr.File(label="Download TXT")]
452
  )
453
 
454
  if __name__ == "__main__":
 
373
  return "\n".join(output)
374
 
375
 
 
376
  def analyze_document(document_text: str, api_key: str) -> tuple:
377
  os.environ["GOOGLE_API_KEY"] = api_key
378
  try:
379
  results = process_document_with_quiz(document_text)
380
  formatted_output = format_quiz_for_display(results)
381
+ json_path = "analysis_results.json"
382
+ txt_path = "analysis_results.txt"
383
+ with open(json_path, "w", encoding="utf-8") as f:
384
+ json.dump(results, f, indent=2, ensure_ascii=False)
385
+ with open(txt_path, "w", encoding="utf-8") as f:
386
+ f.write(formatted_output)
387
+
388
+ return formatted_output, json_path, txt_path
389
  except Exception as e:
390
  error_msg = f"Error processing document: {str(e)}"
391
+ return error_msg, None, None
392
 
393
  with gr.Blocks(title="Quiz Generator") as app:
394
  gr.Markdown("# Quiz Generator")
 
412
  label="Analysis Results",
413
  lines=20
414
  )
415
+ json_file_output = gr.File(label="Download JSON")
416
+ txt_file_output = gr.File(label="Download TXT")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
417
 
 
 
 
 
 
 
 
418
  analyze_btn.click(
419
+ fn=analyze_document,
420
  inputs=[input_text, api_key],
421
+ outputs=[output_results, json_file_output, txt_file_output]
 
 
 
 
 
 
 
 
 
 
 
 
 
422
  )
423
 
424
  if __name__ == "__main__":