GabrielGD commited on
Commit
be60933
·
verified ·
1 Parent(s): 6be2aad

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +49 -8
app.py CHANGED
@@ -28,12 +28,12 @@ GEMINI_API_URL = f"https://generativelanguage.googleapis.com/v1beta/models/gemin
28
  CONFIG = {
29
  "max_retry_attempts": 3,
30
  "retry_delay": 5,
31
- "timeout": 60,
32
  "temperatura": 0.2,
33
  "max_tokens": 12882
34
  }
35
 
36
- rate_limiter = RateLimiter(max_calls=60, period=60)
37
 
38
  DICAS_OAB_MELHORADO = {
39
  "Endereçamento": "Em relações de consumo, prefira o foro do domicílio do autor (Art. 101, I, CDC). Exemplo: 'Excelentíssimo Senhor Juiz de Direito da Vara Cível da Comarca de [Cidade do Autor]'.",
@@ -183,7 +183,7 @@ def estruturar_prompt_analise(caso, peticao, modo_treinamento=False):
183
  3. Pontos Positivos (Liste pelo menos 3 aspectos bem executados com justificativa legal detalhada, incluindo artigos, súmulas ou precedentes aplicáveis)
184
  4. Pontos a Melhorar (Liste todos os problemas encontrados em ordem de gravidade, com explicação detalhada, base legal e impacto na nota)
185
  5. Análise Específica dos Requisitos:
186
- - Endereçamento e qualificação do juízo (Art. 319, I, CPC; Art. 101, I, CDC se aplicável)
187
  - Qualificação das partes (Art. 319, II, CPC)
188
  - Fatos e fundamentos jurídicos (Art. 319, III, CPC; Art. 186, CC)
189
  - Pedidos com especificações (Art. 319, IV, CPC)
@@ -506,6 +506,10 @@ def interface_gradio():
506
  with gr.Blocks(theme=gr.themes.Soft()) as demo:
507
  gr.Markdown("# 📝 Corretor Avançado de Petições Iniciais (Critérios OAB)")
508
  gr.Markdown("⚠️ Nota: Devido a limites da API, pode haver atrasos ou erros em muitas requisições rápidas.")
 
 
 
 
509
  with gr.Row():
510
  with gr.Column(scale=1):
511
  gr.Markdown("""
@@ -589,23 +593,60 @@ def interface_gradio():
589
  outputs=historico_output
590
  )
591
 
592
- caso_btn.click(fn=gerar_caso_ficticio, inputs=[], outputs=[caso_input])
593
  btn_texto.click(
594
  fn=lambda caso, texto, treinamento: corrigir_peticao(caso, texto, None, treinamento),
595
  inputs=[caso_input, peticao_texto, modo_treinamento],
596
- outputs=[resultado_output]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
597
  )
 
 
598
  btn_arquivo.click(
599
  fn=lambda caso, arquivo, treinamento: corrigir_peticao(caso, None, arquivo, treinamento),
600
  inputs=[caso_input, peticao_arquivo, modo_treinamento],
601
- outputs=[resultado_output]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
602
  )
 
603
  clear_btn.click(
604
- fn=lambda: [None, None, None, None, "", "", "", "", "", gr.update(visible=False), gr.update(visible=False)],
605
  inputs=None,
606
  outputs=[caso_input, peticao_texto, peticao_arquivo, arquivo_preview, resultado_output, dica_contextual,
607
  peticao_aluno_output, peticao_corrigida_output, resumo_alteracoes_output, criticas_output,
608
- visualizacao_detalhada_output, download_btn, download_file]
609
  )
610
  comparar_btn.click(
611
  fn=comparar_peticao_melhorada,
 
28
  CONFIG = {
29
  "max_retry_attempts": 3,
30
  "retry_delay": 5,
31
+ "timeout": 30, # Reduzido de 60 para 30 segundos
32
  "temperatura": 0.2,
33
  "max_tokens": 12882
34
  }
35
 
36
+ rate_limiter = RateLimiter(max_calls=100, period=60) # Ajustado de 60 para 100 chamadas por minuto
37
 
38
  DICAS_OAB_MELHORADO = {
39
  "Endereçamento": "Em relações de consumo, prefira o foro do domicílio do autor (Art. 101, I, CDC). Exemplo: 'Excelentíssimo Senhor Juiz de Direito da Vara Cível da Comarca de [Cidade do Autor]'.",
 
183
  3. Pontos Positivos (Liste pelo menos 3 aspectos bem executados com justificativa legal detalhada, incluindo artigos, súmulas ou precedentes aplicáveis)
184
  4. Pontos a Melhorar (Liste todos os problemas encontrados em ordem de gravidade, com explicação detalhada, base legal e impacto na nota)
185
  5. Análise Específica dos Requisitos:
186
+ - Endereçamentos e qualificação do juízo (Art. 319, I, CPC; Art. 101, I, CDC se aplicável)
187
  - Qualificação das partes (Art. 319, II, CPC)
188
  - Fatos e fundamentos jurídicos (Art. 319, III, CPC; Art. 186, CC)
189
  - Pedidos com especificações (Art. 319, IV, CPC)
 
506
  with gr.Blocks(theme=gr.themes.Soft()) as demo:
507
  gr.Markdown("# 📝 Corretor Avançado de Petições Iniciais (Critérios OAB)")
508
  gr.Markdown("⚠️ Nota: Devido a limites da API, pode haver atrasos ou erros em muitas requisições rápidas.")
509
+
510
+ # Campo de status adicionado logo no início
511
+ estado_processamento = gr.Textbox(label="Status do Processamento", value="Aguardando...", interactive=False)
512
+
513
  with gr.Row():
514
  with gr.Column(scale=1):
515
  gr.Markdown("""
 
593
  outputs=historico_output
594
  )
595
 
596
+ # Configuração do botão de correção de texto com feedback
597
  btn_texto.click(
598
  fn=lambda caso, texto, treinamento: corrigir_peticao(caso, texto, None, treinamento),
599
  inputs=[caso_input, peticao_texto, modo_treinamento],
600
+ outputs=[resultado_output, estado_processamento],
601
+ _js="""() => {
602
+ let btn = document.querySelector('button[id*="btn_texto"]');
603
+ btn.disabled = true;
604
+ btn.innerText = '⏳ Corrigindo...';
605
+ document.querySelector('#estado_processamento textarea').value = '⏳ Processando sua petição...';
606
+ return [];
607
+ }"""
608
+ ).then(
609
+ fn=lambda x: (x, "✅ Correção concluída!"),
610
+ inputs=[resultado_output],
611
+ outputs=[resultado_output, estado_processamento],
612
+ _js="""() => {
613
+ let btn = document.querySelector('button[id*="btn_texto"]');
614
+ btn.disabled = false;
615
+ btn.innerText = '🔍 Corrigir Petição (Texto)';
616
+ return [];
617
+ }"""
618
  )
619
+
620
+ # Configuração do botão de correção de arquivo com feedback
621
  btn_arquivo.click(
622
  fn=lambda caso, arquivo, treinamento: corrigir_peticao(caso, None, arquivo, treinamento),
623
  inputs=[caso_input, peticao_arquivo, modo_treinamento],
624
+ outputs=[resultado_output, estado_processamento],
625
+ _js="""() => {
626
+ let btn = document.querySelector('button[id*="btn_arquivo"]');
627
+ btn.disabled = true;
628
+ btn.innerText = '⏳ Corrigindo...';
629
+ document.querySelector('#estado_processamento textarea').value = '⏳ Processando seu arquivo...';
630
+ return [];
631
+ }"""
632
+ ).then(
633
+ fn=lambda x: (x, "✅ Correção concluída!"),
634
+ inputs=[resultado_output],
635
+ outputs=[resultado_output, estado_processamento],
636
+ _js="""() => {
637
+ let btn = document.querySelector('button[id*="btn_arquivo"]');
638
+ btn.disabled = false;
639
+ btn.innerText = '🔍 Corrigir Petição (Arquivo)';
640
+ return [];
641
+ }"""
642
  )
643
+
644
  clear_btn.click(
645
+ fn=lambda: [None, None, None, None, "", "", "", "", "", gr.update(visible=False), gr.update(visible=False), "Aguardando..."],
646
  inputs=None,
647
  outputs=[caso_input, peticao_texto, peticao_arquivo, arquivo_preview, resultado_output, dica_contextual,
648
  peticao_aluno_output, peticao_corrigida_output, resumo_alteracoes_output, criticas_output,
649
+ visualizacao_detalhada_output, download_btn, download_file, estado_processamento]
650
  )
651
  comparar_btn.click(
652
  fn=comparar_peticao_melhorada,