DHEIVER commited on
Commit
b3dfb61
·
verified ·
1 Parent(s): e779ba8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +84 -37
app.py CHANGED
@@ -12,74 +12,121 @@ 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
- """
16
- Gera uma peça jurídica criminal em português do Brasil com base no tipo e nas informações fornecidas.
17
-
18
- Parâmetros:
19
- informacoes_caso (str): Descrição detalhada do caso.
20
- tipo_peca (str): Tipo de peça jurídica a ser gerada (ex: habeas corpus, petição inicial).
21
-
22
- Retorna:
23
- str: Peça jurídica gerada com formatação adequada.
24
- """
25
- # Verifica se o tipo de peça foi selecionado
26
  if not tipo_peca:
27
  return "Por favor, selecione o tipo de peça jurídica."
28
 
29
- # Mensagens para o modelo
30
- mensagens_iniciais = [
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  {
32
  "role": "system",
33
  "content": (
34
- "Você é um especialista em direito criminal no Brasil e deve gerar peças jurídicas detalhadas. "
35
- "Todas as respostas devem estar em português do Brasil, considerando o ordenamento jurídico brasileiro."
 
36
  )
37
  },
38
  {
39
  "role": "user",
40
- "content": f"Quero que você elabore um(a) {tipo_peca} com base nas seguintes informações do caso: {informacoes_caso}"
 
 
41
  }
42
  ]
43
 
44
- # Primeira requisição: Geração inicial da peça
45
- resposta_inicial = client.chat.completions.create(
46
  model="mistralai/Mistral-7B-Instruct-v0.3",
47
- messages=mensagens_iniciais,
48
- max_tokens=1000
 
49
  )
50
-
51
- peca_inicial = resposta_inicial.choices[0].message["content"]
52
 
53
- # Segunda requisição: Expansão da peça jurídica com mais detalhes e argumentos
54
- mensagens_expansao = [
 
 
55
  {
56
  "role": "system",
57
  "content": (
58
- "Você é um especialista em direito criminal no Brasil e deve expandir a peça jurídica gerada, "
59
- "adicionando mais detalhes, justificativas e argumentos legais. "
60
- "Todas as respostas devem estar em português do Brasil, considerando o ordenamento jurídico brasileiro."
61
  )
62
  },
63
  {
64
  "role": "user",
65
- "content": f"Agora, com base na peça inicial a seguir, adicione mais detalhes, justificativas e argumentos legais:\n{peca_inicial}"
66
  }
67
  ]
68
 
69
- # Segunda requisição: Expansão e aprofundamento da peça jurídica
70
- resposta_expansao = client.chat.completions.create(
71
  model="mistralai/Mistral-7B-Instruct-v0.3",
72
- messages=mensagens_expansao,
73
- max_tokens=1000
 
74
  )
75
 
76
- peca_expandida = resposta_expansao.choices[0].message["content"]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
77
 
78
- # Combina a peça inicial com a expansão, garantindo um documento completo e coerente
79
- peca_completa = f"**Peça Jurídica: {tipo_peca.capitalize()}**\n\n{peca_inicial}\n\n{peca_expandida}"
 
 
 
 
80
 
81
- # Retorna a peça completa
82
- return peca_completa
83
 
84
 
85
 
 
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
+ # Template específico para cada tipo de peça
19
+ templates = {
20
+ "habeas corpus": {
21
+ "estrutura": [
22
+ "EXCELENTÍSSIMO(A) SENHOR(A) DOUTOR(A) JUIZ(A) DE DIREITO",
23
+ "FUNDAMENTOS JURÍDICOS",
24
+ "PEDIDOS"
25
+ ],
26
+ "prompt": "Gere um Habeas Corpus detalhado considerando:\n"
27
+ "1. Fundamentos constitucionais (Art. 5º, LXVIII, CF)\n"
28
+ "2. Requisitos específicos do HC\n"
29
+ "3. Jurisprudência relevante do STF/STJ\n"
30
+ "4. Pedidos liminares e principais\n"
31
+ },
32
+ "petição inicial": {
33
+ "estrutura": [
34
+ "QUALIFICAÇÃO DAS PARTES",
35
+ "DOS FATOS",
36
+ "DO DIREITO",
37
+ "DOS PEDIDOS"
38
+ ],
39
+ "prompt": "Elabore uma petição inicial criminal contemplando:\n"
40
+ "1. Elementos essenciais (Art. 41, CPP)\n"
41
+ "2. Fundamentação legal específica\n"
42
+ "3. Provas e documentos relevantes\n"
43
+ "4. Pedidos principais e subsidiários\n"
44
+ }
45
+ }
46
+
47
+ template = templates.get(tipo_peca.lower(), {
48
+ "estrutura": ["INTRODUÇÃO", "DESENVOLVIMENTO", "CONCLUSÃO"],
49
+ "prompt": f"Elabore uma {tipo_peca} criminal completa e fundamentada."
50
+ })
51
+
52
+ # Primeira chamada: Estruturação básica
53
+ mensagens_estrutura = [
54
  {
55
  "role": "system",
56
  "content": (
57
+ "Você é um advogado criminal especialista brasileiro. "
58
+ "Formate a peça seguindo rigorosamente a estrutura jurídica brasileira. "
59
+ "Use linguagem técnica apropriada e citações legais precisas."
60
  )
61
  },
62
  {
63
  "role": "user",
64
+ "content": f"{template['prompt']}\n\nCaso: {informacoes_caso}\n\n"
65
+ f"Estruture a peça com as seguintes seções:\n"
66
+ f"{chr(10).join(template['estrutura'])}"
67
  }
68
  ]
69
 
70
+ resposta_estrutura = client.chat.completions.create(
 
71
  model="mistralai/Mistral-7B-Instruct-v0.3",
72
+ messages=mensagens_estrutura,
73
+ max_tokens=1500,
74
+ temperature=0.7
75
  )
 
 
76
 
77
+ estrutura_base = resposta_estrutura.choices[0].message["content"]
78
+
79
+ # Segunda chamada: Aprofundamento legal
80
+ mensagens_legal = [
81
  {
82
  "role": "system",
83
  "content": (
84
+ "Você é um especialista em direito penal brasileiro. "
85
+ "Analise a peça e adicione fundamentação legal robusta, "
86
+ "incluindo doutrina, jurisprudência e legislação específica."
87
  )
88
  },
89
  {
90
  "role": "user",
91
+ "content": f"Aprimore esta peça com fundamentação legal:\n{estrutura_base}"
92
  }
93
  ]
94
 
95
+ resposta_legal = client.chat.completions.create(
 
96
  model="mistralai/Mistral-7B-Instruct-v0.3",
97
+ messages=mensagens_legal,
98
+ max_tokens=1500,
99
+ temperature=0.7
100
  )
101
 
102
+ # Terceira chamada: Revisão e formatação final
103
+ mensagens_revisao = [
104
+ {
105
+ "role": "system",
106
+ "content": (
107
+ "Você é um revisor jurídico expert. "
108
+ "Faça a revisão final garantindo clareza, coerência "
109
+ "e formatação adequada da peça."
110
+ )
111
+ },
112
+ {
113
+ "role": "user",
114
+ "content": (
115
+ f"Revise e formate esta peça jurídica:\n"
116
+ f"{estrutura_base}\n\n"
117
+ f"Complementos legais:\n{resposta_legal.choices[0].message['content']}"
118
+ )
119
+ }
120
+ ]
121
 
122
+ resposta_final = client.chat.completions.create(
123
+ model="mistralai/Mistral-7B-Instruct-v0.3",
124
+ messages=mensagens_revisao,
125
+ max_tokens=1500,
126
+ temperature=0.5
127
+ )
128
 
129
+ return resposta_final.choices[0].message["content"]
 
130
 
131
 
132