Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -46,99 +46,50 @@ def gerar_peca_juridica_criminal(informacoes_caso: str, tipo_peca: str) -> str:
|
|
46 |
if not template:
|
47 |
return "Tipo de peça não suportado."
|
48 |
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
f"Elabore seguindo estrutura:\n"
|
64 |
-
f"{chr(10).join(template['estrutura'])}\n\n"
|
65 |
-
f"Requisitos:\n{template['prompt']}\n\n"
|
66 |
-
f"Caso:\n{informacoes_caso}"
|
67 |
-
)
|
68 |
-
}
|
69 |
-
]
|
70 |
-
|
71 |
-
try:
|
72 |
-
resposta_estrutura = client.chat.completions.create(
|
73 |
-
model="mistralai/Mistral-7B-Instruct-v0.3",
|
74 |
-
messages=mensagens_estrutura,
|
75 |
-
max_tokens=template['max_tokens'],
|
76 |
-
temperature=0.7
|
77 |
-
)
|
78 |
-
estrutura_base = resposta_estrutura.choices[0].message["content"]
|
79 |
-
except Exception as e:
|
80 |
-
return f"Erro ao gerar a estrutura: {str(e)}"
|
81 |
-
|
82 |
-
mensagens_elaboracao = [
|
83 |
-
{
|
84 |
-
"role": "system",
|
85 |
-
"content": (
|
86 |
-
f"Como especialista criminal, aprimore {tipo_peca} com:\n"
|
87 |
-
"1. Legislação pertinente\n"
|
88 |
-
"2. Jurisprudência atual\n"
|
89 |
-
"3. Doutrina relevante\n"
|
90 |
-
"4. Fundamentação técnica"
|
91 |
-
)
|
92 |
-
},
|
93 |
-
{
|
94 |
-
"role": "user",
|
95 |
-
"content": f"Revise e complemente:\n{estrutura_base}"
|
96 |
-
}
|
97 |
-
]
|
98 |
-
|
99 |
-
try:
|
100 |
-
resposta_elaboracao = client.chat.completions.create(
|
101 |
-
model="mistralai/Mistral-7B-Instruct-v0.3",
|
102 |
-
messages=mensagens_elaboracao,
|
103 |
-
max_tokens=template['max_tokens'],
|
104 |
-
temperature=0.7
|
105 |
-
)
|
106 |
-
except Exception as e:
|
107 |
-
return f"Erro ao elaborar a peça: {str(e)}"
|
108 |
-
|
109 |
-
mensagens_final = [
|
110 |
-
{
|
111 |
-
"role": "system",
|
112 |
-
"content": (
|
113 |
-
f"Finalize {tipo_peca} garantindo:\n"
|
114 |
-
"1. Estrutura correta\n"
|
115 |
-
"2. Numeração parágrafos\n"
|
116 |
-
"3. Formatação adequada\n"
|
117 |
-
"4. Citações precisas"
|
118 |
-
)
|
119 |
-
},
|
120 |
-
{
|
121 |
-
"role": "user",
|
122 |
-
"content": (
|
123 |
-
f"Versão final seguindo:\n"
|
124 |
-
f"{chr(10).join(template['estrutura'])}\n\n"
|
125 |
-
f"Conteúdo base:\n{estrutura_base}\n\n"
|
126 |
-
f"Complementos:\n{resposta_elaboracao.choices[0].message['content']}"
|
127 |
-
)
|
128 |
-
}
|
129 |
-
]
|
130 |
-
|
131 |
-
try:
|
132 |
-
resposta_final = client.chat.completions.create(
|
133 |
-
model="mistralai/Mistral-7B-Instruct-v0.3",
|
134 |
-
messages=mensagens_final,
|
135 |
-
max_tokens=max(template['max_tokens'] + 100, 500),
|
136 |
-
temperature=0.5
|
137 |
-
)
|
138 |
-
except Exception as e:
|
139 |
-
return f"Erro ao finalizar a peça: {str(e)}"
|
140 |
|
141 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
142 |
|
143 |
# Função para redefinir os campos
|
144 |
def redefinir_campos():
|
|
|
46 |
if not template:
|
47 |
return "Tipo de peça não suportado."
|
48 |
|
49 |
+
# Preencher os campos da peça jurídica com base nas informações do caso
|
50 |
+
informacoes = {
|
51 |
+
"Nome do Cliente": "João da Silva", # Exemplo
|
52 |
+
"Data de Nascimento": "01/01/1990", # Exemplo
|
53 |
+
"Local de Nascimento": "São Paulo",
|
54 |
+
"Tipo de Documento de Identidade": "RG",
|
55 |
+
"Número do Documento de Identidade": "123456789",
|
56 |
+
"Endereço de Domicílio do Cliente": "Rua Exemplo, 123, São Paulo - SP",
|
57 |
+
"Local do Crime": "São Paulo",
|
58 |
+
"Data da Detenção": "15/12/2023",
|
59 |
+
"Data do Crime": "14/12/2023",
|
60 |
+
"Horas do Crime": "14:00",
|
61 |
+
"Local Distante do Crime": "Campinas"
|
62 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
|
64 |
+
# Substituir os placeholders na estrutura
|
65 |
+
estrutura_final = "\n".join([
|
66 |
+
linha.replace(placeholder, informacoes[placeholder])
|
67 |
+
for linha in template["estrutura"]
|
68 |
+
for placeholder in informacoes.keys()
|
69 |
+
if placeholder in linha
|
70 |
+
])
|
71 |
+
|
72 |
+
# Adicionar as seções adicionais
|
73 |
+
direitos = (
|
74 |
+
"O artigo 5º LXVIII do Código Penal brasileiro dispõe que 'toda pessoa pode ser presa quando há fundamentos razoáveis para acreditar que ela cometeu ou está prestes a cometer um crime'. "
|
75 |
+
"Por outro lado, o Código Processual Penal estabelece, nos artigos 647 e 648, que 'a prisão não pode ser imposta a menos que haja fundamentos razoáveis...'"
|
76 |
+
)
|
77 |
+
|
78 |
+
# Montar o texto da peça jurídica
|
79 |
+
texto_final = (
|
80 |
+
f"{estrutura_final}\n\n"
|
81 |
+
"DOS FATOS\n"
|
82 |
+
"A Polícia de {informacoes['Local do Crime']} detém o acusado desde {informacoes['Data da Detenção']}, por motivos de suposto furto qualificado...\n\n"
|
83 |
+
f"{direitos}\n\n"
|
84 |
+
"DO CONSTRANGIMENTO ILEGAL\n"
|
85 |
+
"A prisão do acusado, sem a devida fundamentação, caracteriza constrangimento ilegal, uma vez que há evidências de sua inocência...\n\n"
|
86 |
+
"DA MEDIDA LIMINAR\n"
|
87 |
+
"Requer-se a concessão de medida liminar para a liberdade do paciente...\n\n"
|
88 |
+
"DOS PEDIDOS\n"
|
89 |
+
"Diante do exposto, requer-se..."
|
90 |
+
)
|
91 |
+
|
92 |
+
return texto_final
|
93 |
|
94 |
# Função para redefinir os campos
|
95 |
def redefinir_campos():
|