Update app.py
Browse files
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
|
| 139 |
return f"""
|
| 140 |
**Caso Fornecido:**
|
| 141 |
{caso}
|
| 142 |
**Petição do Aluno:**
|
| 143 |
{peticao}
|
| 144 |
### Petição Corrigida
|
| 145 |
-
|
| 146 |
-
|
| 147 |
-
|
| 148 |
-
|
| 149 |
-
|
| 150 |
-
|
| 151 |
-
|
| 152 |
-
|
| 153 |
-
|
| 154 |
-
|
| 155 |
-
|
| 156 |
-
|
| 157 |
-
**
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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
|
| 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():
|