Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -11,91 +11,84 @@ if not api_key:
|
|
11 |
client = InferenceClient(api_key=api_key)
|
12 |
|
13 |
# Função para gerar a peça jurídica em português do Brasil
|
14 |
-
def gerar_peca_juridica_criminal(informacoes_caso, tipo_peca):
|
15 |
if not tipo_peca or not informacoes_caso:
|
16 |
return "Por favor, forneça todas as informações necessárias."
|
17 |
|
18 |
-
|
19 |
-
"
|
20 |
-
"EXCELENTÍSSIMO(A) SENHOR(A) JUIZ(A)",
|
21 |
-
"FATOS",
|
22 |
-
"DIREITO",
|
23 |
-
"PEDIDOS"
|
24 |
-
],
|
25 |
-
"prompt": (
|
26 |
-
"Gere HC técnico e conciso:\n"
|
27 |
-
"1. Qualificação e fatos\n"
|
28 |
-
"2. Fundamento: constrangimento ilegal\n"
|
29 |
-
"3. Pedido liminar: risco e fundamento\n"
|
30 |
-
"4. Pedido final: soltura"
|
31 |
-
)
|
32 |
-
}
|
33 |
|
|
|
34 |
mensagens_estrutura = [
|
35 |
{
|
36 |
"role": "system",
|
37 |
-
"content":
|
38 |
-
"Como advogado criminalista brasileiro, redija um HC conciso e técnico em português formal.\n"
|
39 |
-
"1. Use numeração de parágrafos\n"
|
40 |
-
"2. Evite repetições\n"
|
41 |
-
"3. Cite corretamente apenas legislação existente\n"
|
42 |
-
"4. Formule pedidos com precisão técnica"
|
43 |
-
)
|
44 |
},
|
45 |
{
|
46 |
"role": "user",
|
47 |
-
"content":
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
}
|
49 |
]
|
50 |
|
51 |
resposta_estrutura = client.chat.completions.create(
|
52 |
model="mistralai/Mistral-7B-Instruct-v0.3",
|
53 |
messages=mensagens_estrutura,
|
54 |
-
max_tokens=
|
55 |
temperature=0.7
|
56 |
)
|
57 |
|
58 |
estrutura_base = resposta_estrutura.choices[0].message["content"]
|
59 |
|
|
|
60 |
mensagens_elaboracao = [
|
61 |
{
|
62 |
"role": "system",
|
63 |
-
"content": "
|
64 |
},
|
65 |
{
|
66 |
"role": "user",
|
67 |
-
"content": f"
|
68 |
}
|
69 |
]
|
70 |
|
71 |
resposta_elaboracao = client.chat.completions.create(
|
72 |
model="mistralai/Mistral-7B-Instruct-v0.3",
|
73 |
messages=mensagens_elaboracao,
|
74 |
-
max_tokens=
|
75 |
temperature=0.7
|
76 |
)
|
77 |
|
|
|
78 |
mensagens_final = [
|
79 |
{
|
80 |
"role": "system",
|
81 |
-
"content":
|
82 |
-
"Faça revisão técnica final garantindo:\n"
|
83 |
-
"1. Coesão e clareza\n"
|
84 |
-
"2. Embasamento legal preciso\n"
|
85 |
-
"3. Pedidos bem fundamentados\n"
|
86 |
-
"4. Linguagem jurídica correta"
|
87 |
-
)
|
88 |
},
|
89 |
{
|
90 |
"role": "user",
|
91 |
-
"content":
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
}
|
93 |
]
|
94 |
|
95 |
resposta_final = client.chat.completions.create(
|
96 |
model="mistralai/Mistral-7B-Instruct-v0.3",
|
97 |
messages=mensagens_final,
|
98 |
-
max_tokens=
|
99 |
temperature=0.5
|
100 |
)
|
101 |
|
|
|
11 |
client = InferenceClient(api_key=api_key)
|
12 |
|
13 |
# Função para gerar a peça jurídica em português do Brasil
|
14 |
+
def gerar_peca_juridica_criminal(informacoes_caso: str, tipo_peca: str) -> str:
|
15 |
if not tipo_peca or not informacoes_caso:
|
16 |
return "Por favor, forneça todas as informações necessárias."
|
17 |
|
18 |
+
if tipo_peca.lower() != "habeas corpus":
|
19 |
+
return "Tipo de peça não suportado no momento. Disponível apenas 'habeas corpus'."
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
|
21 |
+
# Template com limite de tokens
|
22 |
mensagens_estrutura = [
|
23 |
{
|
24 |
"role": "system",
|
25 |
+
"content": "Redija HC técnico em português jurídico. Máximo 300 tokens."
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
},
|
27 |
{
|
28 |
"role": "user",
|
29 |
+
"content": (
|
30 |
+
f"Elabore HC conciso com:\n"
|
31 |
+
f"1. Qualificação e fatos essenciais\n"
|
32 |
+
f"2. Art 5º LXVIII CF e art 647/648 CPP\n"
|
33 |
+
f"3. Um precedente STF/STJ\n"
|
34 |
+
f"4. Pedido liminar e principal\n\n"
|
35 |
+
f"Caso: {informacoes_caso}"
|
36 |
+
)
|
37 |
}
|
38 |
]
|
39 |
|
40 |
resposta_estrutura = client.chat.completions.create(
|
41 |
model="mistralai/Mistral-7B-Instruct-v0.3",
|
42 |
messages=mensagens_estrutura,
|
43 |
+
max_tokens=300,
|
44 |
temperature=0.7
|
45 |
)
|
46 |
|
47 |
estrutura_base = resposta_estrutura.choices[0].message["content"]
|
48 |
|
49 |
+
# Elaboração com limite
|
50 |
mensagens_elaboracao = [
|
51 |
{
|
52 |
"role": "system",
|
53 |
+
"content": "Aprimore com fundamentação técnica. Máximo 300 tokens."
|
54 |
},
|
55 |
{
|
56 |
"role": "user",
|
57 |
+
"content": f"Revise mantendo concisão:\n{estrutura_base}"
|
58 |
}
|
59 |
]
|
60 |
|
61 |
resposta_elaboracao = client.chat.completions.create(
|
62 |
model="mistralai/Mistral-7B-Instruct-v0.3",
|
63 |
messages=mensagens_elaboracao,
|
64 |
+
max_tokens=300,
|
65 |
temperature=0.7
|
66 |
)
|
67 |
|
68 |
+
# Finalização com limite
|
69 |
mensagens_final = [
|
70 |
{
|
71 |
"role": "system",
|
72 |
+
"content": "Revise tecnicamente. Máximo 400 tokens."
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
},
|
74 |
{
|
75 |
"role": "user",
|
76 |
+
"content": (
|
77 |
+
f"Finalize respeitando estrutura:\n"
|
78 |
+
"EXCELENTÍSSIMO JUIZ\n"
|
79 |
+
"FATOS\n"
|
80 |
+
"DIREITO\n"
|
81 |
+
"PEDIDOS\n\n"
|
82 |
+
f"{estrutura_base}\n\n"
|
83 |
+
f"{resposta_elaboracao.choices[0].message['content']}"
|
84 |
+
)
|
85 |
}
|
86 |
]
|
87 |
|
88 |
resposta_final = client.chat.completions.create(
|
89 |
model="mistralai/Mistral-7B-Instruct-v0.3",
|
90 |
messages=mensagens_final,
|
91 |
+
max_tokens=400,
|
92 |
temperature=0.5
|
93 |
)
|
94 |
|