GabrielGD commited on
Commit
ee2f7b0
·
verified ·
1 Parent(s): 8cdf838

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +42 -18
app.py CHANGED
@@ -37,14 +37,36 @@ CONFIG = {
37
 
38
  rate_limiter = RateLimiter(max_calls=60, period=60)
39
 
40
- DICAS_OAB = {
41
- "Endereçamento": "Em relações de consumo, prefira o foro do domicílio do autor (Art. 101, I, CDC).",
42
- "Qualificação": "Mencione nome, estado civil (se informado), endereço (use 'Rua XXX' se não fornecido).",
43
- "Fatos": "Descreva os fatos cronologicamente, sem inventar informações.",
44
- "Pedidos": "Seja específico nos pedidos (ex.: 'condenação ao pagamento de R$ X').",
45
- "Custas": "Inclua 'Requer a juntada da guia de custas devidamente recolhida'.",
46
- "Fundamentação": "Baseie-se em artigos do CPC ou CDC e, se possível, em súmulas do STJ (ex.: Súmula 387 para danos morais).",
47
- "Fechamento": "Finalize com 'Nestes termos pede deferimento', sem vírgula."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
48
  }
49
 
50
  HISTORICO = []
@@ -207,14 +229,14 @@ def validar_peticao_basica(peticao):
207
 
208
  def estruturar_prompt_correcao(caso, peticao, modo_treinamento=False):
209
  base_prompt = f"""
210
- ## Correção Rigorosa de Petição Inicial Cível (Critérios Realistas da OAB)
211
  **Caso Fornecido:**
212
  {caso}
213
  **Petição do Aluno:**
214
  {peticao}
215
  **Estrutura da Avaliação:**
216
  ### Análise da Petição
217
- 1. Análise Geral (Breve visão geral sobre a petição - máximo 3 linhas)
218
  2. Nota Final (0 a 10 com uma casa decimal)
219
  3. Pontos Positivos (Liste pelo menos 3 aspectos bem executados com justificativa legal)
220
  4. Pontos a Melhorar (Liste os problemas encontrados em ordem de gravidade com explicação e base legal)
@@ -280,15 +302,17 @@ def estruturar_prompt_correcao(caso, peticao, modo_treinamento=False):
280
  """
281
  if modo_treinamento:
282
  base_prompt += f"""
283
- **Modo de Treinamento Interativo Ativado:**
284
  - Para cada item com pontuação inferior ao máximo, forneça:
285
  a) Uma explicação detalhada (mínimo 2 frases) descrevendo o erro e sua base legal (ex.: Art. 319, CPC).
286
  b) Uma sugestão de redação corrigida baseada no caso.
287
  c) Um exemplo prático de redação correta em outro contexto (ex.: "Em uma ação de dano moral, poderia ser: 'Requer a condenação ao pagamento de R$ 10.000,00 por danos morais, conforme Súmula 387 do STJ.'").
288
- d) Uma dica prática do banco ({json.dumps(DICAS_OAB, ensure_ascii=False)}) ou personalizada.
 
289
  - Verifique a coerência entre os fatos do caso e a petição, destacando inconsistências.
290
  - Sugira estratégias jurídicas adicionais baseadas no caso (ex.: citar Art. 186, CC ou Súmula 387, STJ para danos morais).
291
  - Não resuma; detalhe cada erro de forma pedagógica e clara.
 
292
  """
293
  return base_prompt
294
 
@@ -363,7 +387,7 @@ def corrigir_peticao(caso, peticao_texto=None, peticao_arquivo=None, modo_treina
363
  peticao_conteudo = peticao_texto or ""
364
  if not peticao_conteudo.strip():
365
  return "⚠️ Forneça uma petição."
366
-
367
  problemas = validar_peticao_basica(peticao_conteudo)
368
  aviso_validacao = f"### Validação Inicial\n\n" + "\n".join(problemas) + "\n\n" if problemas else ""
369
 
@@ -466,7 +490,7 @@ def extrair_peticao_corrigida(correcao_completa):
466
  return f"❌ Erro ao extrair petição corrigida: {str(e)}"
467
 
468
  def fornecer_dica_contextual(texto):
469
- dicas = [f"💡 {chave}: {dica}" for chave, dica in DICAS_OAB.items() if chave.lower() in texto.lower()]
470
  return "\n".join(dicas) if dicas else "💡 Escreva mais para receber dicas."
471
 
472
  def calcular_progresso():
@@ -685,14 +709,14 @@ def interface_gradio():
685
  clear_btn.click(
686
  fn=lambda: [None, None, None, None, "", "", "", "", "", gr.update(visible=False), gr.update(visible=False)],
687
  inputs=None,
688
- outputs=[caso_input, peticao_texto, peticao_arquivo, arquivo_preview, resultado_output, dica_contextual,
689
- peticao_aluno_output, peticao_corrigida_output, resumo_alteracoes_output, criticas_output,
690
  visualizacao_detalhada_output, download_btn, download_file]
691
  )
692
  comparar_btn.click(
693
  fn=comparar_peticao_melhorada,
694
  inputs=[caso_input, peticao_texto, resultado_output],
695
- outputs=[peticao_aluno_output, peticao_corrigida_output, resumo_alteracoes_output, criticas_output,
696
  visualizacao_detalhada_output]
697
  ).then(
698
  fn=lambda: gr.update(visible=True),
@@ -740,4 +764,4 @@ def interface_gradio():
740
  return demo
741
 
742
  app = interface_gradio()
743
- app.launch()
 
37
 
38
  rate_limiter = RateLimiter(max_calls=60, period=60)
39
 
40
+ DICAS_OAB_MELHORADO = {
41
+ "Endereçamento": "Em relações de consumo, prefira o foro do domicílio do autor (Art. 101, I, CDC). "
42
+ "Exemplo: 'Excelentíssimo Senhor Juiz de Direito da Vara Cível da Comarca de [Cidade do Autor]'.",
43
+
44
+ "Qualificação": "Mencione nome, estado civil (se informado), endereço (use 'Rua XXX' se não fornecido). "
45
+ "Dica: Sempre verifique se todos os dados das partes estão corretos e completos.",
46
+
47
+ "Fatos": "Descreva os fatos cronologicamente, sem inventar informações. "
48
+ "Exemplo: 'Em [data], o autor celebrou contrato com o réu para a prestação de serviços de [descrição]'.",
49
+
50
+ "Pedidos": "Seja específico nos pedidos (ex.: 'condenação ao pagamento de R$ X'). "
51
+ "Dica: Inclua pedidos de danos morais e materiais, se aplicável, com base em precedentes.",
52
+
53
+ "Custas": "Inclua 'Requer a juntada da guia de custas devidamente recolhida'. "
54
+ "Dica: Nunca se esqueça de mencionar o recolhimento das custas para evitar a extinção do processo.",
55
+
56
+ "Fundamentação": "Baseie-se em artigos do CPC ou CDC e, se possível, em súmulas do STJ (ex.: Súmula 387 para danos morais). "
57
+ "Exemplo: 'Conforme o artigo 186 do Código Civil, a responsabilidade civil pode ser caracterizada'.",
58
+
59
+ "Fechamento": "Finalize com 'Nestes termos pede deferimento', sem vírgula. "
60
+ "Dica: Evite erros de pontuação que podem comprometer a formalidade do documento.",
61
+
62
+ "Estratégia Jurídica": "Utilize precedentes e súmulas para fortalecer sua argumentação. "
63
+ "Exemplo: 'Conforme a Súmula 387 do STJ, os danos morais devem ser comprovados e quantificados'.",
64
+
65
+ "Provas": "Especifique as provas que pretende produzir. "
66
+ "Dica: Inclua testemunhas, documentos e perícias, se necessário, para comprovar os fatos alegados.",
67
+
68
+ "Contra-argumentação": "Antecipe possíveis defesas da parte contrária e prepare respostas. "
69
+ "Dica: Considere os argumentos que a outra parte pode usar e esteja preparado para refutá-los."
70
  }
71
 
72
  HISTORICO = []
 
229
 
230
  def estruturar_prompt_correcao(caso, peticao, modo_treinamento=False):
231
  base_prompt = f"""
232
+ ## Correção Avançada de Petição Inicial Cível (Critérios Realistas da OAB)
233
  **Caso Fornecido:**
234
  {caso}
235
  **Petição do Aluno:**
236
  {peticao}
237
  **Estrutura da Avaliação:**
238
  ### Análise da Petição
239
+ 1. Análise Geral (Visão geral sobre a petição - máximo 3 linhas)
240
  2. Nota Final (0 a 10 com uma casa decimal)
241
  3. Pontos Positivos (Liste pelo menos 3 aspectos bem executados com justificativa legal)
242
  4. Pontos a Melhorar (Liste os problemas encontrados em ordem de gravidade com explicação e base legal)
 
302
  """
303
  if modo_treinamento:
304
  base_prompt += f"""
305
+ **Modo de Treinamento Interativo Avançado:**
306
  - Para cada item com pontuação inferior ao máximo, forneça:
307
  a) Uma explicação detalhada (mínimo 2 frases) descrevendo o erro e sua base legal (ex.: Art. 319, CPC).
308
  b) Uma sugestão de redação corrigida baseada no caso.
309
  c) Um exemplo prático de redação correta em outro contexto (ex.: "Em uma ação de dano moral, poderia ser: 'Requer a condenação ao pagamento de R$ 10.000,00 por danos morais, conforme Súmula 387 do STJ.'").
310
+ d) Uma dica prática do banco ({json.dumps(DICAS_OAB_MELHORADO, ensure_ascii=False)}) ou personalizada.
311
+ e) Uma estratégia jurídica avançada que poderia ser aplicada ao caso.
312
  - Verifique a coerência entre os fatos do caso e a petição, destacando inconsistências.
313
  - Sugira estratégias jurídicas adicionais baseadas no caso (ex.: citar Art. 186, CC ou Súmula 387, STJ para danos morais).
314
  - Não resuma; detalhe cada erro de forma pedagógica e clara.
315
+ - Inclua referências a artigos de lei, jurisprudência e doutrina relevantes.
316
  """
317
  return base_prompt
318
 
 
387
  peticao_conteudo = peticao_texto or ""
388
  if not peticao_conteudo.strip():
389
  return "⚠️ Forneça uma petição."
390
+
391
  problemas = validar_peticao_basica(peticao_conteudo)
392
  aviso_validacao = f"### Validação Inicial\n\n" + "\n".join(problemas) + "\n\n" if problemas else ""
393
 
 
490
  return f"❌ Erro ao extrair petição corrigida: {str(e)}"
491
 
492
  def fornecer_dica_contextual(texto):
493
+ dicas = [f"💡 {chave}: {dica}" for chave, dica in DICAS_OAB_MELHORADO.items() if chave.lower() in texto.lower()]
494
  return "\n".join(dicas) if dicas else "💡 Escreva mais para receber dicas."
495
 
496
  def calcular_progresso():
 
709
  clear_btn.click(
710
  fn=lambda: [None, None, None, None, "", "", "", "", "", gr.update(visible=False), gr.update(visible=False)],
711
  inputs=None,
712
+ outputs=[caso_input, peticao_texto, peticao_arquivo, arquivo_preview, resultado_output, dica_contextual,
713
+ peticao_aluno_output, peticao_corrigida_output, resumo_alteracoes_output, criticas_output,
714
  visualizacao_detalhada_output, download_btn, download_file]
715
  )
716
  comparar_btn.click(
717
  fn=comparar_peticao_melhorada,
718
  inputs=[caso_input, peticao_texto, resultado_output],
719
+ outputs=[peticao_aluno_output, peticao_corrigida_output, resumo_alteracoes_output, criticas_output,
720
  visualizacao_detalhada_output]
721
  ).then(
722
  fn=lambda: gr.update(visible=True),
 
764
  return demo
765
 
766
  app = interface_gradio()
767
+ app.launch()