DHEIVER commited on
Commit
5f6b9fb
·
verified ·
1 Parent(s): ab080e1

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -37
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
- template = {
19
- "estrutura": [
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": f"{template['prompt']}\nCaso: {informacoes_caso}"
 
 
 
 
 
 
 
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=1000,
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": "Como advogado criminalista brasileiro, fundamente cada argumento com legislação e jurisprudência pertinente."
64
  },
65
  {
66
  "role": "user",
67
- "content": f"Aprimore esta peça mantendo os argumentos essenciais:\n{estrutura_base}"
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=1000,
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": f"Elabore versão final técnica:\n{estrutura_base}\n\n{resposta_elaboracao.choices[0].message['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=1000,
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