GabrielGD commited on
Commit
db48cf9
·
verified ·
1 Parent(s): b0307cc

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +53 -15
app.py CHANGED
@@ -205,13 +205,13 @@ def estruturar_prompt_analise(caso, peticao, modo_treinamento=False):
205
  5. Não penalize por informações ausentes no caso original, mas alerte se a omissão compromete a petição.
206
  6. A frase "Nestes termos, pede deferimento" com vírgula é incorreta; corrija para "Nestes termos pede deferimento" e penalize com -0,2 ponto, destacando o erro formal.
207
  7. A petição deve finalizar com "Local e data.\nADVOGADO.\nOAB." sem identificação do aluno (nome, número ou estado na OAB); se houver identificação específica (ex.: "OAB/SP" ou "12345"), zere a nota (0,0) e explique o motivo.
208
-
209
  **Instruções Especiais para Análise Avançada:**
210
  - **Competência**: Avalie o foro indicado com base no Art. 46 do CPC (domicílio do réu) ou Art. 101, I do CDC (domicílio do autor em relações de consumo); penalize erros com -0,10 ponto e justifique com jurisprudência (ex.: STJ, REsp 1.234.567).
211
  - **Consistência Fática**: Compare cada fato narrado na petição com o caso; destaque omissões ou distorções com base no Art. 319, III, CPC.
212
  - **Fundamentação Jurídica**: Exija citação de pelo menos um artigo específico (ex.: Art. 186, CC para responsabilidade civil) e avalie a pertinência; penalize generalidades com -0,15 ponto por item vago.
213
  - **Danos Morais e Materiais**: Se o caso sugerir danos, verifique se os pedidos estão quantificados e fundamentados (ex.: Súmula 387/STJ para danos morais); penalize omissões com -0,20 ponto.
214
- - **Linguagem Técnica**: Avalie a formalidade e precisão do vocabulário jurídico; penalize informalidades ou erros gramaticais (ex.: "vossa excelência" em minúsculas) con -0,05 ponto por ocorrência.
215
  - **Precedentes**: Inclua referências a súmulas ou decisões relevantes (ex.: Súmula 297/STJ para CDC) quando aplicável no caso.
216
 
217
  **Pontuação Detalhada:**
@@ -251,27 +251,61 @@ def estruturar_prompt_analise(caso, peticao, modo_treinamento=False):
251
  return base_prompt
252
 
253
  def estruturar_prompt_peticao_corrigida(caso, peticao):
254
- """Estrutura o prompt apenas para a petição corrigida."""
255
  return f"""
256
  **Caso Fornecido:**
257
  {caso}
258
  **Petição do Aluno:**
259
  {peticao}
260
  ### Petição Corrigida
261
- Certifique-se de incluir esta seção exatamente como '### Petição Corrigida'. Forneça a petição do aluno reescrita com todas as correções aplicadas, incluindo partes omitidas (como pedidos ou custas) e ajustando erros identificados com base nos seguintes critérios:
262
- 1. Endereçamento correto (com foro justificado por CPC ou CDC).
263
- 2. Qualificação completa (Art. 319, II, CPC; use "XXX" para dados ausentes).
264
- 3. Fatos claros e fiéis ao caso (Art. 319, III, CPC).
265
- 4. Fundamentação jurídica robusta (cite CPC, CDC, CC e súmulas aplicáveis, como Súmula 387/STJ para danos morais).
266
- 5. Pedidos específicos e quantificados (Art. 319, IV, CPC).
267
- 6. Valor da causa realista (Art. 319, V, CPC).
268
- 7. Provas detalhadas (Art. 319, VI, CPC; ex.: "prova documental e testemunhal").
269
- 8. Opção por audiência explícita (Art. 319, VII, CPC).
270
- 9. Pedido de citação formal (ex.: "via postal, nos termos do Art. 246, I, CPC").
271
- 10. Juntada da guia de custas com redação precisa.
272
- 11. Fechamento formal com "Local e data.\nADVOGADO.\nOAB." sem identificação específica.
 
 
 
 
 
 
 
273
  """
274
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
275
  def chamar_api(prompt):
276
  payload = {
277
  "contents": [{"parts": [{"text": prompt}]}],
@@ -341,6 +375,10 @@ def corrigir_peticao(caso, peticao_texto=None, peticao_arquivo=None, modo_treina
341
  if "❌" in peticao_corrigida or "⏱️" in peticao_corrigida:
342
  return aviso_validacao + analise_formatada + "\n\n" + peticao_corrigida
343
 
 
 
 
 
344
  correcao_completa = analise + "\n\n" + peticao_corrigida
345
  HISTORICO.append({
346
  "data": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
 
205
  5. Não penalize por informações ausentes no caso original, mas alerte se a omissão compromete a petição.
206
  6. A frase "Nestes termos, pede deferimento" com vírgula é incorreta; corrija para "Nestes termos pede deferimento" e penalize com -0,2 ponto, destacando o erro formal.
207
  7. A petição deve finalizar com "Local e data.\nADVOGADO.\nOAB." sem identificação do aluno (nome, número ou estado na OAB); se houver identificação específica (ex.: "OAB/SP" ou "12345"), zere a nota (0,0) e explique o motivo.
208
+
209
  **Instruções Especiais para Análise Avançada:**
210
  - **Competência**: Avalie o foro indicado com base no Art. 46 do CPC (domicílio do réu) ou Art. 101, I do CDC (domicílio do autor em relações de consumo); penalize erros com -0,10 ponto e justifique com jurisprudência (ex.: STJ, REsp 1.234.567).
211
  - **Consistência Fática**: Compare cada fato narrado na petição com o caso; destaque omissões ou distorções com base no Art. 319, III, CPC.
212
  - **Fundamentação Jurídica**: Exija citação de pelo menos um artigo específico (ex.: Art. 186, CC para responsabilidade civil) e avalie a pertinência; penalize generalidades com -0,15 ponto por item vago.
213
  - **Danos Morais e Materiais**: Se o caso sugerir danos, verifique se os pedidos estão quantificados e fundamentados (ex.: Súmula 387/STJ para danos morais); penalize omissões com -0,20 ponto.
214
+ - **Linguagem Técnica**: Avalie a formalidade e precisão do vocabulário jurídico; penalize informalidades ou erros gramaticais (ex.: "vossa excelência" em minúsculas) com -0,05 ponto por ocorrência.
215
  - **Precedentes**: Inclua referências a súmulas ou decisões relevantes (ex.: Súmula 297/STJ para CDC) quando aplicável no caso.
216
 
217
  **Pontuação Detalhada:**
 
251
  return base_prompt
252
 
253
  def estruturar_prompt_peticao_corrigida(caso, peticao):
254
+ """Estrutura o prompt para a petição corrigida com instruções mais enfáticas."""
255
  return f"""
256
  **Caso Fornecido:**
257
  {caso}
258
  **Petição do Aluno:**
259
  {peticao}
260
  ### Petição Corrigida
261
+ Gere a petição corrigida abaixo desta seção, intitulada exatamente como '### Petição Corrigida'. Você DEVE seguir TODOS os critérios abaixo rigorosamente, sem exceção, aplicando cada correção necessária com base no caso e na petição do aluno. Não ignore nenhum item, pois todos são obrigatórios:
262
+
263
+ 1. **Endereçamento correto**: Corrija o foro com base no Art. 46 do CPC (domicílio do réu) ou Art. 101, I do CDC (domicílio do autor em relações de consumo, se aplicável). Exemplo: "Excelentíssimo Senhor Juiz de Direito da Vara Cível da Comarca de [Cidade correta]".
264
+ 2. **Qualificação completa**: Inclua nome, estado civil, endereço (use "XXX" para dados ausentes), conforme Art. 319, II, CPC. Não invente dados específicos.
265
+ 3. **Fatos claros e fiéis ao caso**: Narre os fatos do caso em ordem cronológica, sem adicionar informações não fornecidas, conforme Art. 319, III, CPC.
266
+ 4. **Fundamentação jurídica robusta**: Cite pelo menos um artigo específico do CPC, CDC ou CC (ex.: Art. 186, CC para responsabilidade civil) e, se aplicável, súmulas (ex.: Súmula 387/STJ para danos morais).
267
+ 5. **Pedidos específicos e quantificados**: Detalhe todos os pedidos com clareza e valores exatos (ex.: "R$ 50.000,00 por danos morais"), conforme Art. 319, IV, CPC.
268
+ 6. **Valor da causa realista**: Inclua o valor total do benefício econômico pretendido, conforme Art. 319, V, CPC (ex.: soma de danos + valor do contrato, se aplicável).
269
+ 7. **Provas detalhadas**: Especifique provas como "prova documental e testemunhal", conforme Art. 319, VI, CPC.
270
+ 8. **Opção por audiência explícita**: Inclua "Requer a designação de audiência de conciliação" ou "Dispensa a audiência de conciliação", conforme Art. 319, VII, CPC.
271
+ 9. **Pedido de citação formal**: Use "via postal, nos termos do Art. 246, I, CPC" ou outro meio legal aplicável.
272
+ 10. **Juntada da guia de custas**: Adicione "Requer a juntada da guia de custas devidamente recolhida" em todas as petições corrigidas, sem exceção.
273
+ 11. **Fechamento formal**: Finalize EXATAMENTE com "Local e data.\nADVOGADO.\nOAB." sem identificação específica (ex.: "OAB/SP" ou "12345" resultam em nota zero). A frase "Nestes termos, pede deferimento" com vírgula DEVE SER corrigida para "Nestes termos pede deferimento" (sem vírgula), conforme exigência formal da OAB.
274
+
275
+ **Instruções Obrigatórias**:
276
+ - Não omita nenhum dos 11 itens acima. Cada um é essencial e deve ser verificado e corrigido se necessário.
277
+ - Siga estritamente as regras formais da OAB, especialmente a correção da vírgula em "Nestes termos pede deferimento".
278
+ - Baseie-se exclusivamente no caso fornecido e na petição do aluno, sem inventar fatos ou dados.
279
+ - Gere a petição completa, incluindo todas as seções (endereçamento, qualificação, fatos, direito, pedidos, valor da causa, provas, fechamento).
280
  """
281
 
282
+ def pos_corrigir_peticao(peticao_corrigida):
283
+ """Pós-processamento para garantir que todas as regras sejam aplicadas."""
284
+ # Garantir a correção da vírgula
285
+ if "Nestes termos, pede deferimento" in peticao_corrigida:
286
+ peticao_corrigida = peticao_corrigida.replace("Nestes termos, pede deferimento", "Nestes termos pede deferimento")
287
+
288
+ # Garantir o pedido de juntada da guia de custas
289
+ if "juntada da guia de custas" not in peticao_corrigida.lower():
290
+ peticao_corrigida = peticao_corrigida.replace("Nestes termos pede deferimento", "Requer a juntada da guia de custas devidamente recolhida.\nNestes termos pede deferimento")
291
+
292
+ # Garantir o fechamento formal correto
293
+ if not peticao_corrigida.strip().endswith("Local e data.\nADVOGADO.\nOAB."):
294
+ linhas = peticao_corrigida.split('\n')
295
+ while linhas and not linhas[-1].strip(): # Remove linhas em branco no final
296
+ linhas.pop()
297
+ if len(linhas) >= 3:
298
+ linhas[-3:] = ["Local e data.", "ADVOGADO.", "OAB."]
299
+ else:
300
+ linhas.extend(["Local e data.", "ADVOGADO.", "OAB."])
301
+ peticao_corrigida = "\n".join(linhas)
302
+
303
+ # Garantir opção por audiência explícita
304
+ if "audiência de conciliação" not in peticao_corrigida.lower():
305
+ peticao_corrigida = peticao_corrigida.replace("Nestes termos pede deferimento", "Requer a designação de audiência de conciliação, nos termos do Art. 319, VII, CPC.\nNestes termos pede deferimento")
306
+
307
+ return peticao_corrigida
308
+
309
  def chamar_api(prompt):
310
  payload = {
311
  "contents": [{"parts": [{"text": prompt}]}],
 
375
  if "❌" in peticao_corrigida or "⏱️" in peticao_corrigida:
376
  return aviso_validacao + analise_formatada + "\n\n" + peticao_corrigida
377
 
378
+ # Pós-correção para garantir conformidade
379
+ peticao_corrigida = pos_corrigir_peticao(peticao_corrigida)
380
+ print("Debug: Petição corrigida após pós-processamento:\n", peticao_corrigida[:1000]) # Debug para verificar a saída
381
+
382
  correcao_completa = analise + "\n\n" + peticao_corrigida
383
  HISTORICO.append({
384
  "data": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),