DHEIVER commited on
Commit
200622a
·
verified ·
1 Parent(s): c3f8d4f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -51
app.py CHANGED
@@ -11,15 +11,11 @@ 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:
16
- return "Por favor, selecione o tipo de peça jurídica."
17
-
18
- # Validação de entrada
19
- if not informacoes_caso:
20
- return "Por favor, forneça as informações do caso."
21
 
22
- # Template específico para cada tipo de peça
23
  templates = {
24
  "habeas corpus": {
25
  "estrutura": [
@@ -34,52 +30,40 @@ def gerar_peca_juridica_criminal(informacoes_caso, tipo_peca):
34
  ],
35
  "prompt": "Gere um Habeas Corpus completo e tecnicamente preciso considerando:\n"
36
  "- Qualificação completa do paciente\n"
37
- "- Narrativa clara e objetiva dos fatos\n"
38
- "- Base legal específica (Art. 647 e 648 do CPP)\n"
39
- "- Jurisprudência atualizada dos tribunais superiores\n"
40
  "- Doutrina pertinente\n"
41
- "- Pedido liminar fundamentado\n"
42
- "- Pedido principal detalhado\n\n"
43
- "1. Fundamentos constitucionais (Art. 5º, LXVIII, CF)\n"
44
- "2. Requisitos específicos do HC\n"
45
- "3. Jurisprudência relevante do STF/STJ\n"
46
- "4. Pedidos liminares e principais\n"
47
  },
48
  "petição inicial": {
49
  "estrutura": [
50
- "QUALIFICAÇÃO DAS PARTES",
51
  "DOS FATOS",
52
  "DO DIREITO",
53
  "DOS PEDIDOS"
54
  ],
55
- "prompt": "Elabore uma petição inicial criminal contemplando:\n"
56
- "1. Elementos essenciais (Art. 41, CPP)\n"
57
- "2. Fundamentação legal específica\n"
58
- "3. Provas e documentos relevantes\n"
59
- "4. Pedidos principais e subsidiários\n"
60
  }
61
  }
62
 
63
  template = templates.get(tipo_peca.lower(), {
64
  "estrutura": ["INTRODUÇÃO", "DESENVOLVIMENTO", "CONCLUSÃO"],
65
- "prompt": f"Elabore uma {tipo_peca} criminal completa e fundamentada."
66
  })
67
 
68
- # Primeira chamada: Estruturação básica
69
  mensagens_estrutura = [
70
  {
71
  "role": "system",
72
  "content": (
73
- "Você é um advogado criminal especialista brasileiro. "
74
- "Formate a peça seguindo rigorosamente a estrutura jurídica brasileira. "
75
- "Use linguagem técnica apropriada e citações legais precisas."
76
  )
77
  },
78
  {
79
  "role": "user",
80
  "content": f"{template['prompt']}\n\nCaso: {informacoes_caso}\n\n"
81
- f"Estruture a peça com as seguintes seções:\n"
82
- f"{chr(10).join(template['estrutura'])}"
83
  }
84
  ]
85
 
@@ -92,56 +76,48 @@ def gerar_peca_juridica_criminal(informacoes_caso, tipo_peca):
92
 
93
  estrutura_base = resposta_estrutura.choices[0].message["content"]
94
 
95
- # Segunda chamada: Contextualização e fundamentação
96
  mensagens_elaboracao = [
97
  {
98
  "role": "system",
99
  "content": (
100
- "Você é um experiente advogado criminalista brasileiro com profundo conhecimento em habeas corpus. "
101
- "Desenvolva cada seção da peça com máxima precisão técnica e fundamentação sólida. "
102
- "Para cada argumento jurídico, inclua:\n"
103
- "1. Base legal específica e atualizada\n"
104
- "2. Jurisprudência recente dos tribunais superiores\n"
105
- "3. Doutrina pertinente de autores reconhecidos\n"
106
- "4. Conexão clara entre fatos, direito e pedidos"
107
  )
108
  },
109
  {
110
  "role": "user",
111
- "content": f"Aprimore esta peça com fundamentação legal:\n{estrutura_base}"
112
  }
113
  ]
114
 
115
- resposta_legal = client.chat.completions.create(
116
  model="mistralai/Mistral-7B-Instruct-v0.3",
117
- messages=mensagens_legal,
118
  max_tokens=1500,
119
  temperature=0.7
120
  )
121
 
122
- # Terceira chamada: Finalização e formatação técnica
123
- mensagens_revisao = [
124
  {
125
  "role": "system",
126
- "content": (
127
- "Você é um revisor jurídico expert. "
128
- "Faça a revisão final garantindo clareza, coerência "
129
- "e formatação adequada da peça."
130
- )
131
  },
132
  {
133
  "role": "user",
134
  "content": (
135
- f"Revise e formate esta peça jurídica:\n"
136
  f"{estrutura_base}\n\n"
137
- f"Complementos legais:\n{resposta_legal.choices[0].message['content']}"
138
  )
139
  }
140
  ]
141
 
142
  resposta_final = client.chat.completions.create(
143
  model="mistralai/Mistral-7B-Instruct-v0.3",
144
- messages=mensagens_revisao,
145
  max_tokens=1500,
146
  temperature=0.5
147
  )
@@ -149,7 +125,6 @@ def gerar_peca_juridica_criminal(informacoes_caso, tipo_peca):
149
  return resposta_final.choices[0].message["content"]
150
 
151
 
152
-
153
  # Função para redefinir os campos
154
  def redefinir_campos():
155
  return "", "", ""
 
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
  def gerar_peca_juridica_criminal(informacoes_caso, tipo_peca):
16
+ if not tipo_peca or not informacoes_caso:
17
+ return "Por favor, forneça todas as informações necessárias."
 
 
 
 
18
 
 
19
  templates = {
20
  "habeas corpus": {
21
  "estrutura": [
 
30
  ],
31
  "prompt": "Gere um Habeas Corpus completo e tecnicamente preciso considerando:\n"
32
  "- Qualificação completa do paciente\n"
33
+ "- Narrativa clara dos fatos\n"
34
+ "- Base legal (Art. 647 e 648 do CPP)\n"
35
+ "- Jurisprudência atual\n"
36
  "- Doutrina pertinente\n"
37
+ "- Pedidos liminar e principal\n"
 
 
 
 
 
38
  },
39
  "petição inicial": {
40
  "estrutura": [
41
+ "QUALIFICAÇÃO",
42
  "DOS FATOS",
43
  "DO DIREITO",
44
  "DOS PEDIDOS"
45
  ],
46
+ "prompt": "Elabore uma petição inicial criminal contemplando os requisitos do Art. 41 do CPP"
 
 
 
 
47
  }
48
  }
49
 
50
  template = templates.get(tipo_peca.lower(), {
51
  "estrutura": ["INTRODUÇÃO", "DESENVOLVIMENTO", "CONCLUSÃO"],
52
+ "prompt": f"Elabore uma {tipo_peca} criminal fundamentada."
53
  })
54
 
 
55
  mensagens_estrutura = [
56
  {
57
  "role": "system",
58
  "content": (
59
+ "Você é um advogado criminalista especialista. "
60
+ "Formate a peça conforme a estrutura jurídica brasileira."
 
61
  )
62
  },
63
  {
64
  "role": "user",
65
  "content": f"{template['prompt']}\n\nCaso: {informacoes_caso}\n\n"
66
+ f"Estruture com:\n{chr(10).join(template['estrutura'])}"
 
67
  }
68
  ]
69
 
 
76
 
77
  estrutura_base = resposta_estrutura.choices[0].message["content"]
78
 
 
79
  mensagens_elaboracao = [
80
  {
81
  "role": "system",
82
  "content": (
83
+ "Como advogado criminalista experiente, desenvolva cada seção com:\n"
84
+ "1. Base legal específica\n"
85
+ "2. Jurisprudência atual\n"
86
+ "3. Doutrina relevante\n"
87
+ "4. Conexão entre fatos e direito"
 
 
88
  )
89
  },
90
  {
91
  "role": "user",
92
+ "content": f"Aprimore esta peça:\n{estrutura_base}"
93
  }
94
  ]
95
 
96
+ resposta_elaboracao = client.chat.completions.create(
97
  model="mistralai/Mistral-7B-Instruct-v0.3",
98
+ messages=mensagens_elaboracao,
99
  max_tokens=1500,
100
  temperature=0.7
101
  )
102
 
103
+ mensagens_final = [
 
104
  {
105
  "role": "system",
106
+ "content": "Faça a revisão técnica final garantindo precisão e formatação."
 
 
 
 
107
  },
108
  {
109
  "role": "user",
110
  "content": (
111
+ f"Revise e formate:\n"
112
  f"{estrutura_base}\n\n"
113
+ f"Complementos:\n{resposta_elaboracao.choices[0].message['content']}"
114
  )
115
  }
116
  ]
117
 
118
  resposta_final = client.chat.completions.create(
119
  model="mistralai/Mistral-7B-Instruct-v0.3",
120
+ messages=mensagens_final,
121
  max_tokens=1500,
122
  temperature=0.5
123
  )
 
125
  return resposta_final.choices[0].message["content"]
126
 
127
 
 
128
  # Função para redefinir os campos
129
  def redefinir_campos():
130
  return "", "", ""