GabrielGD commited on
Commit
bfae129
·
verified ·
1 Parent(s): 2da81e8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +54 -15
app.py CHANGED
@@ -135,28 +135,61 @@ def estruturar_prompt_analise(caso, peticao, modo_treinamento=False):
135
  return base_prompt
136
 
137
  def estruturar_prompt_peticao_corrigida(caso, peticao):
138
- """Estrutura o prompt apenas para a petição corrigida, reforçando a regra da vírgula."""
139
  return f"""
140
  **Caso Fornecido:**
141
  {caso}
142
  **Petição do Aluno:**
143
  {peticao}
144
  ### Petição Corrigida
145
- 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:
146
- 1. Endereçamento correto (com foro justificado por CPC ou CDC).
147
- 2. Qualificação completa (Art. 319, II, CPC; use "XXX" para dados ausentes).
148
- 3. Fatos claros e fiéis ao caso (Art. 319, III, CPC).
149
- 4. Fundamentação jurídica robusta (cite CPC, CDC, CC e súmulas aplicáveis, como Súmula 387/STJ para danos morais).
150
- 5. Pedidos específicos e quantificados (Art. 319, IV, CPC).
151
- 6. Valor da causa realista (Art. 319, V, CPC).
152
- 7. Provas detalhadas (Art. 319, VI, CPC; ex.: "prova documental e testemunhal").
153
- 8. Opção por audiência explícita (Art. 319, VII, CPC).
154
- 9. Pedido de citação formal (ex.: "via postal, nos termos do Art. 246, I, CPC").
155
- 10. Juntada da guia de custas com redação precisa.
156
- 11. Fechamento formal com "Local e data.\nADVOGADO.\nOAB." sem identificação específica.
157
- **Instrução Específica**: Sempre corrija a frase "Nestes termos, pede deferimento" (com vírgula) para "Nestes termos pede deferimento" (sem vírgula), conforme exigência formal da OAB.
 
 
 
 
 
 
158
  """
159
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
160
  def chamar_api(prompt):
161
  payload = {
162
  "contents": [{"parts": [{"text": prompt}]}],
@@ -226,6 +259,10 @@ def corrigir_peticao(caso, peticao_texto=None, peticao_arquivo=None, modo_treina
226
  if "❌" in peticao_corrigida or "⏱️" in peticao_corrigida:
227
  return aviso_validacao + analise_formatada + "\n\n" + peticao_corrigida
228
 
 
 
 
 
229
  correcao_completa = analise + "\n\n" + peticao_corrigida
230
  HISTORICO.append({
231
  "data": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
@@ -402,7 +439,7 @@ def gerar_caso_ficticio():
402
  def estruturar_prompt_geracao_caso():
403
  return """
404
  Crie um caso fictício detalhado para uma petição inicial cível, similar ao exemplo:
405
- "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."
406
  O caso deve:
407
  1. Conter uma situação clara de violação de direitos que justifique uma ação cível
408
  2. Incluir valores específicos de danos materiais e/ou morais
@@ -426,6 +463,8 @@ def validar_peticao_basica(peticao):
426
  problemas.append("⚠️ Endereçamento ausente ou incompleto (Art. 319, I, CPC).")
427
  if "Art. 319" not in peticao and "CPC" not in peticao:
428
  problemas.append("⚠️ Fundamentação jurídica não menciona o CPC (Art. 319).")
 
 
429
  if "Dá-se à causa o valor" not in peticao:
430
  problemas.append("⚠️ Valor da causa não especificado (Art. 319, V, CPC).")
431
  if "juntada da guia de custas" not in peticao.lower():
 
135
  return base_prompt
136
 
137
  def estruturar_prompt_peticao_corrigida(caso, peticao):
138
+ """Estrutura o prompt para a petição corrigida com instruções mais enfáticas."""
139
  return f"""
140
  **Caso Fornecido:**
141
  {caso}
142
  **Petição do Aluno:**
143
  {peticao}
144
  ### Petição Corrigida
145
+ 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:
146
+
147
+ 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]".
148
+ 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.
149
+ 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.
150
+ 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).
151
+ 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.
152
+ 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).
153
+ 7. **Provas detalhadas**: Especifique provas como "prova documental e testemunhal", conforme Art. 319, VI, CPC.
154
+ 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.
155
+ 9. **Pedido de citação formal**: Use "via postal, nos termos do Art. 246, I, CPC" ou outro meio legal aplicável.
156
+ 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.
157
+ 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.
158
+
159
+ **Instruções Obrigatórias**:
160
+ - Não omita nenhum dos 11 itens acima. Cada um é essencial e deve ser verificado e corrigido se necessário.
161
+ - Siga estritamente as regras formais da OAB, especialmente a correção da vírgula em "Nestes termos pede deferimento".
162
+ - Baseie-se exclusivamente no caso fornecido e na petição do aluno, sem inventar fatos ou dados.
163
+ - Gere a petição completa, incluindo todas as seções (endereçamento, qualificação, fatos, direito, pedidos, valor da causa, provas, fechamento).
164
  """
165
 
166
+ def pos_corrigir_peticao(peticao_corrigida):
167
+ """Pós-processamento para garantir que todas as regras sejam aplicadas."""
168
+ # Garantir a correção da vírgula
169
+ if "Nestes termos, pede deferimento" in peticao_corrigida:
170
+ peticao_corrigida = peticao_corrigida.replace("Nestes termos, pede deferimento", "Nestes termos pede deferimento")
171
+
172
+ # Garantir o pedido de juntada da guia de custas
173
+ if "juntada da guia de custas" not in peticao_corrigida.lower():
174
+ peticao_corrigida = peticao_corrigida.replace("Nestes termos pede deferimento", "Requer a juntada da guia de custas devidamente recolhida.\nNestes termos pede deferimento")
175
+
176
+ # Garantir o fechamento formal correto
177
+ if not peticao_corrigida.strip().endswith("Local e data.\nADVOGADO.\nOAB."):
178
+ linhas = peticao_corrigida.split('\n')
179
+ while linhas and not linhas[-1].strip(): # Remove linhas em branco no final
180
+ linhas.pop()
181
+ if len(linhas) >= 3:
182
+ linhas[-3:] = ["Local e data.", "ADVOGADO.", "OAB."]
183
+ else:
184
+ linhas.extend(["Local e data.", "ADVOGADO.", "OAB."])
185
+ peticao_corrigida = "\n".join(linhas)
186
+
187
+ # Garantir opção por audiência explícita
188
+ if "audiência de conciliação" not in peticao_corrigida.lower():
189
+ 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")
190
+
191
+ return peticao_corrigida
192
+
193
  def chamar_api(prompt):
194
  payload = {
195
  "contents": [{"parts": [{"text": prompt}]}],
 
259
  if "❌" in peticao_corrigida or "⏱️" in peticao_corrigida:
260
  return aviso_validacao + analise_formatada + "\n\n" + peticao_corrigida
261
 
262
+ # Pós-correção para garantir conformidade
263
+ peticao_corrigida = pos_corrigir_peticao(peticao_corrigida)
264
+ print("Debug: Petição corrigida após pós-processamento:\n", peticao_corrigida[:1000]) # Debug para verificar a saída
265
+
266
  correcao_completa = analise + "\n\n" + peticao_corrigida
267
  HISTORICO.append({
268
  "data": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
 
439
  def estruturar_prompt_geracao_caso():
440
  return """
441
  Crie um caso fictício detalhado para uma petição inicial cível, similar ao exemplo:
442
+ "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."
443
  O caso deve:
444
  1. Conter uma situação clara de violação de direitos que justifique uma ação cível
445
  2. Incluir valores específicos de danos materiais e/ou morais
 
463
  problemas.append("⚠️ Endereçamento ausente ou incompleto (Art. 319, I, CPC).")
464
  if "Art. 319" not in peticao and "CPC" not in peticao:
465
  problemas.append("⚠️ Fundamentação jurídica não menciona o CPC (Art. 319).")
466
+ if "Dá-se à causa o valor" not in peticao:
467
+ problemas.append("⚠️ Fundamentação jurídica não menciona o CPC (Art. 319).")
468
  if "Dá-se à causa o valor" not in peticao:
469
  problemas.append("⚠️ Valor da causa não especificado (Art. 319, V, CPC).")
470
  if "juntada da guia de custas" not in peticao.lower():