GabrielGD commited on
Commit
cdac4f4
·
verified ·
1 Parent(s): 7ac74ee

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -8
app.py CHANGED
@@ -494,7 +494,7 @@ Diferença Líquida: {total_adicionadas - total_removidas} linhas
494
  return peticao, peticao_corrigida, resumo_estatistico, criticas_texto, visualizacao_detalhada
495
 
496
  def salvar_progresso(caso, peticao_texto):
497
- """Salva o caso e a petição em um arquivo JSON para download."""
498
  try:
499
  dados = {
500
  "caso": caso or "",
@@ -502,13 +502,11 @@ def salvar_progresso(caso, peticao_texto):
502
  "data": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
503
  "historico": HISTORICO
504
  }
505
- caminho_temp = "progresso_salvo.json"
506
- with open(caminho_temp, "w", encoding="utf-8") as f:
507
- json.dump(dados, f, ensure_ascii=False)
508
- return caminho_temp
509
  except Exception as e:
510
  print(f"Erro ao salvar progresso: {str(e)}")
511
- return None
512
 
513
  def carregar_progresso(arquivo):
514
  """Carrega o progresso a partir de um arquivo JSON."""
@@ -532,6 +530,9 @@ def interface_gradio():
532
  gr.Markdown("# 📝 Corretor Avançado de Petições Iniciais (Critérios OAB)")
533
  gr.Markdown("⚠️ Nota: Devido a limites da API, pode haver atrasos ou erros em muitas requisições rápidas.")
534
 
 
 
 
535
  with gr.Row():
536
  with gr.Column(scale=1):
537
  gr.Markdown("""
@@ -618,11 +619,36 @@ def interface_gradio():
618
  outputs=historico_output
619
  )
620
 
 
621
  download_btn.click(
622
  fn=salvar_progresso,
623
  inputs=[caso_input, peticao_texto],
624
- outputs=gr.File(label="Download do Progresso")
625
  )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
626
  upload_progresso.change(
627
  fn=carregar_progresso,
628
  inputs=[upload_progresso],
@@ -711,7 +737,7 @@ def gerar_caso_ficticio():
711
  def estruturar_prompt_geracao_caso():
712
  return """
713
  Crie um caso fictício detalhado para uma petição inicial cível, similar ao exemplo:
714
- "Ana, modelo profissional, residente em Manaus, viajou para São Paulo, para o casamento de sua filha. Para lavar, pintar seus cabelos e realizar um penteado para o casamento, Ana procurou os serviços de João Macedo, cabeleireiro e dono do salão de beleza 'Hair', sediado na cidade de São Paulo, que lhe cobrou R$500,00 (quinhentos reais) pela prestação do serviço. Após lavar os cabelos de Ana, João aplicou-lhe uma tintura da marca francesa ABC, importada pela empresa Brasil Connection Ltda, sediada na cidade de Curitiba (PR). Meia hora após a aplicação da tintura, Ana sofreu uma reação alérgica, que demandou atendimento médico-hospitalar, no valor de R$1.000,00 (um mil reais), bem como dois dias de absoluto repouso que impossibilitou sua presença no casamento de sua filha. Além disso, perdeu grande parte de seu cabelo, tendo permanecido com manchas em seu rosto por dois meses, perdendo um ensaio fotográfico, para o qual já havia sido contratada, pelo valor de R$50.000,00 (cinquenta mil reais). Posteriormente constatou-se que a tintura utilizada continha substâncias químicas extremamente perigosas à vida e à saúde das pessoas e a fabricante ABC já havia sido condenada pela justiça francesa a encerrar a fabricação e comercialização do produto. Indignada com os danos sofridos, Ana procura um advogado para pleitear o devido ressarcimento."
715
  O caso deve:
716
  1. Conter uma violação clara de direitos que justifique uma ação cível
717
  2. Incluir valores específicos de danos materiais e/ou morais
 
494
  return peticao, peticao_corrigida, resumo_estatistico, criticas_texto, visualizacao_detalhada
495
 
496
  def salvar_progresso(caso, peticao_texto):
497
+ """Gera o conteúdo JSON e retorna como string para download via JavaScript."""
498
  try:
499
  dados = {
500
  "caso": caso or "",
 
502
  "data": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
503
  "historico": HISTORICO
504
  }
505
+ json_content = json.dumps(dados, ensure_ascii=False)
506
+ return json_content
 
 
507
  except Exception as e:
508
  print(f"Erro ao salvar progresso: {str(e)}")
509
+ return f"Erro: {str(e)}"
510
 
511
  def carregar_progresso(arquivo):
512
  """Carrega o progresso a partir de um arquivo JSON."""
 
530
  gr.Markdown("# 📝 Corretor Avançado de Petições Iniciais (Critérios OAB)")
531
  gr.Markdown("⚠️ Nota: Devido a limites da API, pode haver atrasos ou erros em muitas requisições rápidas.")
532
 
533
+ # Componente oculto para armazenar o JSON e disparar o download
534
+ download_trigger = gr.Textbox(visible=False)
535
+
536
  with gr.Row():
537
  with gr.Column(scale=1):
538
  gr.Markdown("""
 
619
  outputs=historico_output
620
  )
621
 
622
+ # Evento para salvar progresso
623
  download_btn.click(
624
  fn=salvar_progresso,
625
  inputs=[caso_input, peticao_texto],
626
+ outputs=download_trigger
627
  )
628
+
629
+ # JavaScript para disparar o download no navegador
630
+ demo.load(_js="""
631
+ function() {
632
+ const trigger = document.querySelector('input[style*="display: none"]'); // Seleciona o Textbox oculto
633
+ if (trigger) {
634
+ trigger.addEventListener('change', function() {
635
+ const content = this.value;
636
+ if (content && !content.startsWith("Erro:")) {
637
+ const blob = new Blob([content], { type: "application/json" });
638
+ const url = URL.createObjectURL(blob);
639
+ const a = document.createElement("a");
640
+ a.href = url;
641
+ a.download = "progresso_salvo.json";
642
+ document.body.appendChild(a);
643
+ a.click();
644
+ document.body.removeChild(a);
645
+ URL.revokeObjectURL(url);
646
+ }
647
+ });
648
+ }
649
+ }
650
+ """)
651
+
652
  upload_progresso.change(
653
  fn=carregar_progresso,
654
  inputs=[upload_progresso],
 
737
  def estruturar_prompt_geracao_caso():
738
  return """
739
  Crie um caso fictício detalhado para uma petição inicial cível, similar ao exemplo:
740
+ "Ana, modelo profissional, residente em Manaus, viajou para São Paulo, para o casamento de sua filha. Para lavar, pintar seus cabelos e realizar um penteado para o casamento, Ana procurou os serviços de João Macedo, cabeleireiro e dono do salão de beleza 'Hair', sediado na cidade de São Paulo, que lhe cobrou R$500,00 (quinhentos reais) pela prestação do serviço. Após lavar os cabelos de Ana, João aplicou-lhe uma tintura da marca francesa ABC, importada pela empresa Brasil Connection Ltda, sediada na cidade de Curitiba (PR). Meia hora após a aplicação da tintura, Ana sofreu uma reação alérgica, que demandou atendimento médico-hospitalar, no valor de R$1.000,00 (um mil reais), bem como dois dias de absoluto repouso que impossibilitou sua presença no casamento de sua filha. Além disso, perdeu grande parte de seu cabelo, tendo permanecido com manchas em seu rosto por dois meses, perdendo um ensaio fotográfico, para o qual já havia sido contratada, pelo valor de R$50.000,00 (cinquenta mil reais). Posteriormente constatou-se que a tintura utilizada continha substâncias químicas extremamente perigosas à vida e à saúde das pessoas e a fabricante ABC já havia sido condenada pela justiça francesa a encerrar a fabricação e comercialização do produto. Indignada com os danos sofridos, Ana procura um advogado para pleitear o devido resortsarcimento."
741
  O caso deve:
742
  1. Conter uma violação clara de direitos que justifique uma ação cível
743
  2. Incluir valores específicos de danos materiais e/ou morais