Update app.py
Browse files
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 |
-
#
|
| 553 |
-
|
| 554 |
-
|
|
|
|
| 555 |
|
| 556 |
-
logger.info("Progresso salvo com sucesso como string e
|
| 557 |
-
return json_content, "✅ Progresso salvo! Copie o conteúdo abaixo ou
|
| 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 |
-
|
| 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)
|
| 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,
|
| 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,
|
| 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,
|
| 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),
|