Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -25,50 +25,70 @@ class DocumentGenerator:
|
|
25 |
messages = [
|
26 |
{
|
27 |
"role": "system",
|
28 |
-
"content": """Você é um advogado criminalista brasileiro
|
29 |
-
|
|
|
30 |
},
|
31 |
{
|
32 |
"role": "user",
|
33 |
-
"content": f"""Gere um {doc_type}
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
61 |
-
top_p=0.
|
62 |
max_tokens=2048, # Limite de tamanho
|
63 |
-
presence_penalty=0.
|
64 |
-
frequency_penalty=0.
|
65 |
)
|
66 |
|
67 |
-
|
|
|
|
|
|
|
|
|
|
|
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 nº {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"""
|