DHEIVER commited on
Commit
d911a45
·
verified ·
1 Parent(s): 514bb86

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +79 -32
app.py CHANGED
@@ -1,7 +1,7 @@
1
  import gradio as gr
2
- import os
3
  from datetime import datetime
4
  from huggingface_hub import InferenceClient
 
5
 
6
  class DefenseGenerator:
7
  def __init__(self):
@@ -80,7 +80,7 @@ Local, Data.
80
  [Advogado]
81
  OAB/[Estado] [Número]
82
 
83
- Dados básicos para formatação:
84
  Comarca: {dados_basicos['comarca']}
85
  Vara: {dados_basicos['vara']}
86
  Cliente: {dados_basicos['cliente']}
@@ -88,38 +88,64 @@ OAB: {dados_basicos['oab']}"""
88
 
89
  return self.generate_content(prompt)
90
 
91
- def interface():
92
- gerador = DefenseGenerator()
93
-
94
- with gr.Blocks() as demo:
95
- gr.Markdown("# Gerador de Peças Criminais")
96
 
97
- with gr.Row():
98
  tipo = gr.Dropdown(
99
- choices=list(gerador.document_types.keys()),
 
100
  label="Tipo de Peça",
101
- value="resposta_acusacao"
 
102
  )
103
 
104
  with gr.Row():
105
- with gr.Column():
106
- comarca = gr.Textbox(label="Comarca", placeholder="Ex: São Paulo")
107
- vara = gr.Textbox(label="Vara", placeholder="Ex: 1ª")
108
-
109
- with gr.Column():
110
- cliente = gr.Textbox(label="Nome do Cliente", placeholder="Ex: João da Silva")
111
- oab = gr.Textbox(label="OAB", placeholder="Ex: SP123456")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
112
 
113
  fatos = gr.Textbox(
114
- label="Descreva os fatos e o que deseja na peça",
115
  placeholder="Descreva a situação do cliente e o que precisa ser argumentado...",
116
- lines=5
 
117
  )
118
 
119
- btn = gr.Button("Gerar")
120
- output = gr.Textbox(label="Peça Gerada", lines=20, show_copy_button=True)
121
-
 
 
 
 
 
 
 
 
122
  def process(tipo, fatos, comarca, vara, cliente, oab):
 
123
  dados = {
124
  "comarca": comarca,
125
  "vara": vara,
@@ -128,22 +154,43 @@ def interface():
128
  }
129
  return gerador.gerar_documento(tipo, fatos, dados)
130
 
131
- btn.click(
 
 
 
 
 
 
 
 
 
 
 
132
  fn=process,
133
  inputs=[tipo, fatos, comarca, vara, cliente, oab],
134
- outputs=output
 
 
 
 
 
 
 
135
  )
 
 
 
 
 
136
 
137
- exemplo = gr.Examples(
138
- examples=[
139
- ["resposta_acusacao", "Cliente preso em flagrante por furto de celular iPhone 13 da vítima Maria em 10/01/2024. É primário, tem residência fixa e trabalho. A vítima não reconheceu com certeza.", "São Paulo", "1ª", "João Silva", "SP123456"],
140
- ["habeas_corpus", "Cliente preso preventivamente há 90 dias por tráfico. Apreendidas 10g de maconha, é primário, tem residência e trabalho fixos. Não foram apreendidos outros materiais típicos de tráfico.", "São Paulo", "2ª", "Pedro Santos", "SP654321"]
141
- ],
142
- inputs=[tipo, fatos, comarca, vara, cliente, oab]
143
  )
144
-
145
  return demo
146
 
147
  if __name__ == "__main__":
148
- demo = interface()
149
  demo.launch()
 
1
  import gradio as gr
 
2
  from datetime import datetime
3
  from huggingface_hub import InferenceClient
4
+ import os
5
 
6
  class DefenseGenerator:
7
  def __init__(self):
 
80
  [Advogado]
81
  OAB/[Estado] [Número]
82
 
83
+ Dados para formatação:
84
  Comarca: {dados_basicos['comarca']}
85
  Vara: {dados_basicos['vara']}
86
  Cliente: {dados_basicos['cliente']}
 
88
 
89
  return self.generate_content(prompt)
90
 
91
+ def create_interface():
92
+ with gr.Blocks(theme=gr.themes.Soft()) as demo:
93
+ gr.Markdown("# Sistema Criminal.AI", elem_classes="text-center text-2xl font-bold mb-4")
 
 
94
 
95
+ with gr.Group():
96
  tipo = gr.Dropdown(
97
+ choices=list(DefenseGenerator().document_types.keys()),
98
+ value="resposta_acusacao",
99
  label="Tipo de Peça",
100
+ container=False,
101
+ scale=1
102
  )
103
 
104
  with gr.Row():
105
+ with gr.Column(scale=1):
106
+ comarca = gr.Textbox(
107
+ label="Comarca",
108
+ placeholder="Ex: São Paulo",
109
+ container=False
110
+ )
111
+ vara = gr.Textbox(
112
+ label="Vara",
113
+ placeholder="Ex: 1ª",
114
+ container=False
115
+ )
116
+
117
+ with gr.Column(scale=1):
118
+ cliente = gr.Textbox(
119
+ label="Nome do Cliente",
120
+ placeholder="Ex: João da Silva",
121
+ container=False
122
+ )
123
+ oab = gr.Textbox(
124
+ label="OAB",
125
+ placeholder="Ex: SP123456",
126
+ container=False
127
+ )
128
 
129
  fatos = gr.Textbox(
130
+ label="Descreva os fatos",
131
  placeholder="Descreva a situação do cliente e o que precisa ser argumentado...",
132
+ lines=5,
133
+ container=False
134
  )
135
 
136
+ with gr.Row():
137
+ gerar_btn = gr.Button("Gerar Peça", variant="primary", scale=2)
138
+ limpar_btn = gr.Button("Limpar", scale=1)
139
+
140
+ output = gr.TextArea(
141
+ label="Documento Gerado",
142
+ lines=20,
143
+ show_copy_button=True,
144
+ container=False
145
+ )
146
+
147
  def process(tipo, fatos, comarca, vara, cliente, oab):
148
+ gerador = DefenseGenerator()
149
  dados = {
150
  "comarca": comarca,
151
  "vara": vara,
 
154
  }
155
  return gerador.gerar_documento(tipo, fatos, dados)
156
 
157
+ def clear():
158
+ return {
159
+ tipo: "resposta_acusacao",
160
+ comarca: "",
161
+ vara: "",
162
+ cliente: "",
163
+ oab: "",
164
+ fatos: "",
165
+ output: ""
166
+ }
167
+
168
+ gerar_btn.click(
169
  fn=process,
170
  inputs=[tipo, fatos, comarca, vara, cliente, oab],
171
+ outputs=output,
172
+ api_name="gerar_peca"
173
+ )
174
+
175
+ limpar_btn.click(
176
+ fn=clear,
177
+ outputs=[tipo, comarca, vara, cliente, oab, fatos, output],
178
+ api_name="limpar"
179
  )
180
+
181
+ exemplos = [
182
+ ["resposta_acusacao", "Cliente preso em flagrante por furto de celular iPhone 13 da vítima Maria em 10/01/2024. É primário, tem residência fixa e trabalho. A vítima não reconheceu com certeza.", "São Paulo", "1ª", "João Silva", "SP123456"],
183
+ ["habeas_corpus", "Cliente preso preventivamente há 90 dias por tráfico. Apreendidas 10g de maconha, é primário, tem residência e trabalho fixos. Não foram apreendidos outros materiais típicos de tráfico.", "São Paulo", "2ª", "Pedro Santos", "SP654321"]
184
+ ]
185
 
186
+ gr.Examples(
187
+ examples=exemplos,
188
+ inputs=[tipo, fatos, comarca, vara, cliente, oab],
189
+ label="Exemplos de Uso"
 
 
190
  )
191
+
192
  return demo
193
 
194
  if __name__ == "__main__":
195
+ demo = create_interface()
196
  demo.launch()