Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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
|
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
|
92 |
-
|
93 |
-
|
94 |
-
with gr.Blocks() as demo:
|
95 |
-
gr.Markdown("# Gerador de Peças Criminais")
|
96 |
|
97 |
-
with gr.
|
98 |
tipo = gr.Dropdown(
|
99 |
-
choices=list(
|
|
|
100 |
label="Tipo de Peça",
|
101 |
-
|
|
|
102 |
)
|
103 |
|
104 |
with gr.Row():
|
105 |
-
with gr.Column():
|
106 |
-
comarca = gr.Textbox(
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
|
113 |
fatos = gr.Textbox(
|
114 |
-
label="Descreva os fatos
|
115 |
placeholder="Descreva a situação do cliente e o que precisa ser argumentado...",
|
116 |
-
lines=5
|
|
|
117 |
)
|
118 |
|
119 |
-
|
120 |
-
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
132 |
fn=process,
|
133 |
inputs=[tipo, fatos, comarca, vara, cliente, oab],
|
134 |
-
outputs=output
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
135 |
)
|
|
|
|
|
|
|
|
|
|
|
136 |
|
137 |
-
|
138 |
-
examples=
|
139 |
-
|
140 |
-
|
141 |
-
],
|
142 |
-
inputs=[tipo, fatos, comarca, vara, cliente, oab]
|
143 |
)
|
144 |
-
|
145 |
return demo
|
146 |
|
147 |
if __name__ == "__main__":
|
148 |
-
demo =
|
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()
|