GabrielGD commited on
Commit
7a30a67
·
verified ·
1 Parent(s): d8b88b5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -13
app.py CHANGED
@@ -17,7 +17,6 @@ from ratelimiter import RateLimiter
17
  import difflib
18
  from html import escape
19
  import random
20
- import base64
21
  import logging
22
 
23
  # Configura o logging para depuração
@@ -544,20 +543,21 @@ def salvar_progresso(caso, peticao):
544
  # Verifica se os inputs estão vazios ou None
545
  if not caso or not peticao:
546
  logger.warning("Inputs vazios detectados: caso ou peticao estão vazios.")
547
- return "", "⚠️ Caso ou petição estão vazios. Preencha ambos para salvar.", ""
548
 
549
  # Cria o conteúdo JSON como string
550
  json_content = json.dumps({"caso": caso, "peticao": peticao}, ensure_ascii=False, indent=4)
551
 
552
- # Codifica o conteúdo em base64 para criar um link de download
553
- encoded_content = base64.b64encode(json_content.encode('utf-8')).decode('utf-8')
554
- download_link = f"[Clique aqui para baixar o progresso (progresso.json)](data:application/json;base64,{encoded_content})"
 
555
 
556
- logger.info("Progresso salvo com sucesso como string e link de download.")
557
- return json_content, "✅ Progresso salvo! Copie o conteúdo abaixo ou use o link para baixar:", download_link
558
  except Exception as e:
559
  logger.error(f"Erro ao salvar progresso: {str(e)}")
560
- return "", f"❌ Erro ao salvar o progresso: {str(e)}", ""
561
 
562
  def carregar_progresso(arquivo_entrada):
563
  logger.info("Iniciando carregamento de progresso...")
@@ -640,7 +640,7 @@ def interface_gradio():
640
 
641
  # Componentes para exibir o progresso salvo
642
  progresso_json_output = gr.Textbox(label="Progresso Salvo (JSON)", lines=5, interactive=False, visible=False)
643
- progresso_download_link = gr.Markdown(label="Link para Download", visible=False)
644
 
645
  with gr.Row():
646
  peticao_aluno_output = gr.Textbox(label="Petição do Aluno", lines=15, interactive=False)
@@ -689,11 +689,11 @@ def interface_gradio():
689
  outputs=[processing_message]
690
  )
691
  clear_btn.click(
692
- fn=lambda: [None, None, None, None, "", "", "", "", "", gr.update(visible=False), gr.update(visible=False), gr.update(visible=False)],
693
  inputs=None,
694
  outputs=[caso_input, peticao_texto, peticao_arquivo, arquivo_preview, resultado_output, dica_contextual,
695
  peticao_aluno_output, peticao_corrigida_output, resumo_alteracoes_output, criticas_output,
696
- visualizacao_detalhada_output, progresso_json_output, progresso_download_link, processing_message]
697
  )
698
  comparar_btn.click(
699
  fn=comparar_peticao_melhorada,
@@ -708,7 +708,7 @@ def interface_gradio():
708
  ).then(
709
  fn=lambda caso, peticao: salvar_progresso(caso, peticao),
710
  inputs=[caso_input, peticao_texto],
711
- outputs=[progresso_json_output, resultado_output, progresso_download_link]
712
  ).then(
713
  fn=lambda: gr.update(value="", visible=False),
714
  inputs=None,
@@ -716,7 +716,7 @@ def interface_gradio():
716
  ).then(
717
  fn=lambda: gr.update(visible=True),
718
  inputs=None,
719
- outputs=[progresso_json_output, progresso_download_link]
720
  )
721
  carregar_btn.click(
722
  fn=lambda arquivo: carregar_progresso(arquivo.name),
 
17
  import difflib
18
  from html import escape
19
  import random
 
20
  import logging
21
 
22
  # Configura o logging para depuração
 
543
  # Verifica se os inputs estão vazios ou None
544
  if not caso or not peticao:
545
  logger.warning("Inputs vazios detectados: caso ou peticao estão vazios.")
546
+ return "", "⚠️ Caso ou petição estão vazios. Preencha ambos para salvar.", None
547
 
548
  # Cria o conteúdo JSON como string
549
  json_content = json.dumps({"caso": caso, "peticao": peticao}, ensure_ascii=False, indent=4)
550
 
551
+ # Cria um arquivo em memória usando io.BytesIO
552
+ buffer = io.BytesIO()
553
+ buffer.write(json_content.encode('utf-8'))
554
+ buffer.seek(0)
555
 
556
+ logger.info("Progresso salvo com sucesso como string e arquivo em memória.")
557
+ return json_content, "✅ Progresso salvo! Copie o conteúdo abaixo ou baixe o arquivo:", buffer
558
  except Exception as e:
559
  logger.error(f"Erro ao salvar progresso: {str(e)}")
560
+ return "", f"❌ Erro ao salvar o progresso: {str(e)}", None
561
 
562
  def carregar_progresso(arquivo_entrada):
563
  logger.info("Iniciando carregamento de progresso...")
 
640
 
641
  # Componentes para exibir o progresso salvo
642
  progresso_json_output = gr.Textbox(label="Progresso Salvo (JSON)", lines=5, interactive=False, visible=False)
643
+ progresso_download_file = gr.File(label="Download do Progresso", visible=False)
644
 
645
  with gr.Row():
646
  peticao_aluno_output = gr.Textbox(label="Petição do Aluno", lines=15, interactive=False)
 
689
  outputs=[processing_message]
690
  )
691
  clear_btn.click(
692
+ fn=lambda: [None, None, None, None, "", "", "", "", "", gr.update(visible=False), gr.update(visible=False)],
693
  inputs=None,
694
  outputs=[caso_input, peticao_texto, peticao_arquivo, arquivo_preview, resultado_output, dica_contextual,
695
  peticao_aluno_output, peticao_corrigida_output, resumo_alteracoes_output, criticas_output,
696
+ visualizacao_detalhada_output, progresso_json_output, progresso_download_file, processing_message]
697
  )
698
  comparar_btn.click(
699
  fn=comparar_peticao_melhorada,
 
708
  ).then(
709
  fn=lambda caso, peticao: salvar_progresso(caso, peticao),
710
  inputs=[caso_input, peticao_texto],
711
+ outputs=[progresso_json_output, resultado_output, progresso_download_file]
712
  ).then(
713
  fn=lambda: gr.update(value="", visible=False),
714
  inputs=None,
 
716
  ).then(
717
  fn=lambda: gr.update(visible=True),
718
  inputs=None,
719
+ outputs=[progresso_json_output, progresso_download_file]
720
  )
721
  carregar_btn.click(
722
  fn=lambda arquivo: carregar_progresso(arquivo.name),