GabrielGD commited on
Commit
370856c
·
verified ·
1 Parent(s): 4cb343c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -13
app.py CHANGED
@@ -6,6 +6,7 @@ import PyPDF2
6
  import docx
7
  import io
8
  import time
 
9
  from dotenv import load_dotenv
10
  from pdfplumber import open as pdfplumber_open
11
  from PIL import Image
@@ -546,25 +547,33 @@ def salvar_progresso(caso, peticao):
546
  # Verifica se os inputs estão vazios ou None
547
  if not caso or not peticao:
548
  logger.warning("Inputs vazios detectados: caso ou peticao estão vazios.")
549
- return "", "⚠️ Caso ou petição estão vazios. Preencha ambos para salvar."
550
 
551
  # Cria o conteúdo JSON como string
552
  logger.debug("Gerando JSON content...")
553
  json_content = json.dumps({"caso": caso, "peticao": peticao}, ensure_ascii=False, indent=4)
554
  logger.debug(f"JSON content gerado: {json_content[:100]}...")
555
 
556
- # Mensagem de sucesso com instruções para salvar manualmente
 
 
 
 
 
 
 
557
  success_message = (
558
- "✅ Progresso salvo! Copie o conteúdo abaixo e cole em um arquivo com extensão `.json` "
559
- "(ex.: `progresso.json`). Para isso, crie um novo arquivo de texto, cole o conteúdo, "
560
- "salve com o nome `progresso.json` e use a opção 'Carregar Progresso' para restaurar."
 
561
  )
562
 
563
- logger.info("Progresso salvo com sucesso como string.")
564
- return json_content, success_message
565
  except Exception as e:
566
  logger.error(f"Erro ao salvar progresso: {str(e)}", exc_info=True)
567
- return "", f"❌ Erro ao salvar o progresso: {str(e)}"
568
 
569
  def carregar_progresso(arquivo_entrada):
570
  logger.info("Iniciando carregamento de progresso...")
@@ -645,8 +654,9 @@ def interface_gradio():
645
 
646
  resultado_output = gr.Markdown(label="📊 Correção Oficial e Nota", show_copy_button=True)
647
 
648
- # Componente para exibir o progresso salvo
649
  progresso_json_output = gr.Textbox(label="Progresso Salvo (JSON)", lines=5, interactive=False, visible=False)
 
650
 
651
  with gr.Row():
652
  peticao_aluno_output = gr.Textbox(label="Petição do Aluno", lines=15, interactive=False)
@@ -695,11 +705,11 @@ def interface_gradio():
695
  outputs=[processing_message]
696
  )
697
  clear_btn.click(
698
- fn=lambda: [None, None, None, None, "", "", "", "", "", gr.update(visible=False)],
699
  inputs=None,
700
  outputs=[caso_input, peticao_texto, peticao_arquivo, arquivo_preview, resultado_output, dica_contextual,
701
  peticao_aluno_output, peticao_corrigida_output, resumo_alteracoes_output, criticas_output,
702
- visualizacao_detalhada_output, progresso_json_output, processing_message]
703
  )
704
  comparar_btn.click(
705
  fn=comparar_peticao_melhorada,
@@ -714,7 +724,7 @@ def interface_gradio():
714
  ).then(
715
  fn=lambda caso, peticao: salvar_progresso(caso, peticao),
716
  inputs=[caso_input, peticao_texto],
717
- outputs=[progresso_json_output, resultado_output]
718
  ).then(
719
  fn=lambda: gr.update(value="", visible=False),
720
  inputs=None,
@@ -722,7 +732,7 @@ def interface_gradio():
722
  ).then(
723
  fn=lambda: gr.update(visible=True),
724
  inputs=None,
725
- outputs=[progresso_json_output]
726
  )
727
  carregar_btn.click(
728
  fn=lambda arquivo: carregar_progresso(arquivo.name),
 
6
  import docx
7
  import io
8
  import time
9
+ import tempfile
10
  from dotenv import load_dotenv
11
  from pdfplumber import open as pdfplumber_open
12
  from PIL import Image
 
547
  # Verifica se os inputs estão vazios ou None
548
  if not caso or not peticao:
549
  logger.warning("Inputs vazios detectados: caso ou peticao estão vazios.")
550
+ return "", "⚠️ Caso ou petição estão vazios. Preencha ambos para salvar.", None
551
 
552
  # Cria o conteúdo JSON como string
553
  logger.debug("Gerando JSON content...")
554
  json_content = json.dumps({"caso": caso, "peticao": peticao}, ensure_ascii=False, indent=4)
555
  logger.debug(f"JSON content gerado: {json_content[:100]}...")
556
 
557
+ # Cria um arquivo temporário para salvar o JSON
558
+ logger.debug("Criando arquivo temporário...")
559
+ with tempfile.NamedTemporaryFile(mode='w', delete=False, suffix='.json', prefix='progresso_', encoding='utf-8') as temp_file:
560
+ temp_file.write(json_content)
561
+ temp_file_path = temp_file.name
562
+ logger.debug(f"Arquivo temporário criado: {temp_file_path}")
563
+
564
+ # Mensagem de sucesso com instruções para download ou fallback
565
  success_message = (
566
+ "✅ Progresso salvo! O download do arquivo `progresso.json` deve iniciar automaticamente. "
567
+ "Se o download não iniciar, copie o conteúdo abaixo e cole em um arquivo com extensão `.json` "
568
+ "(ex.: `progresso.json`). No celular, você pode copiar o texto, abrir um app de notas, colar o conteúdo, "
569
+ "e salvar como `progresso.json`. Use a opção 'Carregar Progresso' para restaurar."
570
  )
571
 
572
+ logger.info("Progresso salvo com sucesso.")
573
+ return json_content, success_message, temp_file_path
574
  except Exception as e:
575
  logger.error(f"Erro ao salvar progresso: {str(e)}", exc_info=True)
576
+ return "", f"❌ Erro ao salvar o progresso: {str(e)}", None
577
 
578
  def carregar_progresso(arquivo_entrada):
579
  logger.info("Iniciando carregamento de progresso...")
 
654
 
655
  resultado_output = gr.Markdown(label="📊 Correção Oficial e Nota", show_copy_button=True)
656
 
657
+ # Componentes para exibir o progresso salvo
658
  progresso_json_output = gr.Textbox(label="Progresso Salvo (JSON)", lines=5, interactive=False, visible=False)
659
+ progresso_download_file = gr.File(label="Download do Progresso", visible=False)
660
 
661
  with gr.Row():
662
  peticao_aluno_output = gr.Textbox(label="Petição do Aluno", lines=15, interactive=False)
 
705
  outputs=[processing_message]
706
  )
707
  clear_btn.click(
708
+ fn=lambda: [None, None, None, None, "", "", "", "", "", gr.update(visible=False), gr.update(visible=False)],
709
  inputs=None,
710
  outputs=[caso_input, peticao_texto, peticao_arquivo, arquivo_preview, resultado_output, dica_contextual,
711
  peticao_aluno_output, peticao_corrigida_output, resumo_alteracoes_output, criticas_output,
712
+ visualizacao_detalhada_output, progresso_json_output, progresso_download_file, processing_message]
713
  )
714
  comparar_btn.click(
715
  fn=comparar_peticao_melhorada,
 
724
  ).then(
725
  fn=lambda caso, peticao: salvar_progresso(caso, peticao),
726
  inputs=[caso_input, peticao_texto],
727
+ outputs=[progresso_json_output, resultado_output, progresso_download_file]
728
  ).then(
729
  fn=lambda: gr.update(value="", visible=False),
730
  inputs=None,
 
732
  ).then(
733
  fn=lambda: gr.update(visible=True),
734
  inputs=None,
735
+ outputs=[progresso_json_output, progresso_download_file]
736
  )
737
  carregar_btn.click(
738
  fn=lambda arquivo: carregar_progresso(arquivo.name),