DHEIVER commited on
Commit
8aff7c3
·
verified ·
1 Parent(s): d2e4aef

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +48 -28
app.py CHANGED
@@ -25,50 +25,70 @@ class DocumentGenerator:
25
  messages = [
26
  {
27
  "role": "system",
28
- "content": """Você é um advogado criminalista brasileiro. Gere documentos jurídicos concisos e objetivos,
29
- sem repetições desnecessárias. Use linguagem técnica apropriada e citações específicas."""
 
30
  },
31
  {
32
  "role": "user",
33
- "content": f"""Gere um {doc_type} objetivo e sem repetições com:
34
-
35
- QUALIFICAÇÃO:
36
- Cliente: {context.get('client_name')}
37
- Processo: {context.get('process_number')}
38
- Tribunal: {context.get('court')}
39
- Comarca: {context.get('jurisdiction')}
40
-
41
- FATOS:
42
- {context.get('facts')}
43
-
44
- FUNDAMENTOS JURÍDICOS:
45
- {context.get('legal_basis')}
46
-
47
- Regras:
48
- 1. Seja conciso e direto
49
- 2. Evite repetir informações
50
- 3. Cite apenas uma vez cada artigo/jurisprudência
51
- 4. Use formatação jurídica padrão
52
- 5. Inclua apenas informações relevantes"""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
53
  }
54
  ]
55
 
56
- # Gera o documento com parâmetros ajustados
57
  completion = self.client.chat.completions.create(
58
  model=self.model,
59
  messages=messages,
60
- temperature=0.3, # Reduzido para maior consistência
61
- top_p=0.85, # Mantém coerência
62
  max_tokens=2048, # Limite de tamanho
63
- presence_penalty=0.6, # Penaliza repetições
64
- frequency_penalty=0.8 # Penaliza fortemente palavras repetidas
65
  )
66
 
67
- return self._format_output(completion.choices[0].message.content)
 
 
 
 
 
68
 
69
  except Exception as e:
70
  logger.error(f"Erro na geração: {str(e)}")
71
  return f"Erro na geração do documento: {str(e)}"
 
72
 
73
  def _format_output(self, text: str) -> str:
74
  """Formata o texto gerado"""
 
25
  messages = [
26
  {
27
  "role": "system",
28
+ "content": """Você é um advogado criminalista brasileiro altamente experiente.
29
+ Gere documentos jurídicos seguindo rigorosamente o formato e padrão das peças processuais brasileiras.
30
+ Use linguagem formal, técnica e apropriada ao meio jurídico brasileiro."""
31
  },
32
  {
33
  "role": "user",
34
+ "content": f"""Gere um {doc_type} seguindo estritamente o formato jurídico brasileiro padrão:
35
+
36
+ EXCELENTÍSSIMO(A) SENHOR(A) DOUTOR(A) JUIZ(A) DE DIREITO DA VARA CRIMINAL DA COMARCA DE {context.get('jurisdiction').upper()}
37
+
38
+ Processo {context.get('process_number')}
39
+
40
+ {context.get('client_name')}, brasileiro, devidamente qualificado nos autos do processo em epígrafe, por seu advogado que esta subscreve, vem, respeitosamente, à presença de Vossa Excelência, com fundamento no artigo 5º, LXVIII, da Constituição Federal e artigos 647 e seguintes do Código de Processo Penal, impetrar:
41
+
42
+ HABEAS CORPUS
43
+ com pedido de liminar
44
+
45
+ em face do constrangimento ilegal sofrido, pelos fatos e fundamentos a seguir expostos:
46
+
47
+ I - DOS FATOS
48
+ {context.get('facts')}
49
+
50
+ II - DO DIREITO
51
+ {context.get('legal_basis')}
52
+
53
+ III - DOS PEDIDOS
54
+
55
+ Ante o exposto, requer-se:
56
+
57
+ a) A concessão de LIMINAR para determinar a imediata expedição de alvará de soltura em favor do paciente;
58
+
59
+ b) No mérito, a concessão definitiva da ordem para revogar a prisão preventiva, expedindo-se o competente alvará de soltura em favor do paciente, se por outro motivo não estiver preso.
60
+
61
+ Nestes termos,
62
+ Pede deferimento.
63
+
64
+ {context.get('jurisdiction')}, [DATA]
65
+
66
+ [Nome do Advogado]
67
+ OAB/XX XXX.XXX"""
68
  }
69
  ]
70
 
 
71
  completion = self.client.chat.completions.create(
72
  model=self.model,
73
  messages=messages,
74
+ temperature=0.1, # Reduzido para maior formalidade
75
+ top_p=0.8, # Mantém coerência
76
  max_tokens=2048, # Limite de tamanho
77
+ presence_penalty=0.3, # Reduz repetições mantendo formalidade
78
+ frequency_penalty=0.5 # Reduz repetições de palavras
79
  )
80
 
81
+ # Formata a data
82
+ result = completion.choices[0].message.content
83
+ current_date = datetime.now().strftime('%d de %B de %Y')
84
+ result = result.replace('[DATA]', current_date)
85
+
86
+ return self._format_output(result)
87
 
88
  except Exception as e:
89
  logger.error(f"Erro na geração: {str(e)}")
90
  return f"Erro na geração do documento: {str(e)}"
91
+
92
 
93
  def _format_output(self, text: str) -> str:
94
  """Formata o texto gerado"""