Spaces:
Running
Running
File size: 5,424 Bytes
82a745d 716ba45 d4469c1 716ba45 d4469c1 716ba45 d4469c1 99c1a44 5de62ce d4469c1 5de62ce 99c1a44 d4469c1 5de62ce d4469c1 99c1a44 d4469c1 7060ba3 d4469c1 d5649b7 3a67a8e d4469c1 3a67a8e d4469c1 b9be663 d4469c1 3a67a8e d4469c1 2552fb1 d4469c1 3a67a8e d4469c1 bd07d48 5de62ce 3a67a8e d4469c1 3a67a8e bd07d48 428cd1d 5de62ce 3a67a8e b9be663 d4469c1 3a67a8e 716ba45 d4469c1 716ba45 d4469c1 716ba45 d4469c1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 |
import os
import gradio as gr
from huggingface_hub import InferenceClient
# Obtendo a API Key da variável de ambiente
api_key = os.getenv("HF_API_KEY")
if not api_key:
raise EnvironmentError("A variável de ambiente 'HF_API_KEY' não está configurada.")
# Criação do cliente com a API Key
client = InferenceClient(api_key=api_key)
# Função para gerar a peça jurídica em português do Brasil
def gerar_peca_juridica_criminal(informacoes_caso, tipo_peca):
"""
Gera uma peça jurídica criminal em português do Brasil com base no tipo e nas informações fornecidas.
Parâmetros:
informacoes_caso (str): Descrição detalhada do caso.
tipo_peca (str): Tipo de peça jurídica a ser gerada (ex: habeas corpus, petição inicial).
Retorna:
str: Peça jurídica gerada.
"""
mensagens = [
{
"role": "system",
"content": (
"Você é um especialista em direito criminal no Brasil e deve gerar peças jurídicas detalhadas. "
"Todas as respostas devem estar em português do Brasil, considerando o ordenamento jurídico brasileiro."
)
},
{
"role": "user",
"content": f"Quero que você elabore um(a) {tipo_peca} com base nas seguintes informações do caso: {informacoes_caso}"
}
]
# Chamada ao modelo para gerar a resposta
resposta = client.chat.completions.create(
model="mistralai/Mistral-7B-Instruct-v0.3",
messages=mensagens,
max_tokens=1000
)
return resposta.choices[0].message["content"]
# Função para redefinir os campos
def redefinir_campos():
return "", "", ""
# Função para exportar a peça jurídica gerada
def exportar_peca(peca_texto):
"""
Exporta a peça jurídica gerada para um arquivo .txt.
Parâmetros:
peca_texto (str): Texto da peça jurídica gerada.
Retorna:
str: Caminho do arquivo exportado.
"""
arquivo_nome = "peca_juridica_gerada.txt"
with open(arquivo_nome, "w", encoding="utf-8") as arquivo:
arquivo.write(peca_texto)
return f"Arquivo salvo como: {arquivo_nome}"
# Configuração do app Gradio com funcionalidades adicionais
def gerar_interface_gradio():
"""
Configura a interface do Gradio para gerar peças jurídicas com exemplos pré-definidos e funcionalidades adicionais.
"""
with gr.Blocks() as interface:
gr.Markdown("# Gerador de Peças Jurídicas Criminais")
gr.Markdown(
"### Preencha os campos abaixo ou escolha um exemplo, e selecione o tipo de peça jurídica que deseja gerar."
)
with gr.Row():
entrada_caso = gr.Textbox(
label="Informações do Caso",
placeholder="Descreva o caso detalhadamente ou selecione um exemplo abaixo.",
lines=5
)
exemplo_caso = gr.Dropdown(
label="Exemplos de Casos",
choices=[
"O cliente foi acusado injustamente de furto qualificado, mas há provas de que estava em outro local no momento do crime.",
"O cliente foi preso em flagrante por porte de entorpecentes, mas os policiais não apresentaram o mandado de busca.",
"O cliente foi acusado de agressão, mas existem testemunhas que comprovam sua ausência no local do ocorrido."
],
value="",
interactive=True
)
entrada_tipo = gr.Dropdown(
label="Tipo de Peça Jurídica",
choices=["habeas corpus", "petição inicial", "defesa prévia", "apelação criminal"],
placeholder="Selecione o tipo de peça jurídica"
)
def atualizar_caso(caso_exemplo):
"""
Atualiza o campo de texto com o exemplo escolhido pelo usuário.
"""
return caso_exemplo
exemplo_caso.change(
atualizar_caso,
inputs=exemplo_caso,
outputs=entrada_caso
)
with gr.Row():
botao_gerar = gr.Button("Gerar Peça Jurídica")
botao_redefinir = gr.Button("Redefinir Campos")
saida_texto = gr.Textbox(
label="Peça Jurídica Gerada",
lines=15,
placeholder="A peça jurídica gerada aparecerá aqui."
)
botao_gerar.click(
gerar_peca_juridica_criminal,
inputs=[entrada_caso, entrada_tipo],
outputs=saida_texto
)
botao_redefinir.click(
redefinir_campos,
inputs=None,
outputs=[entrada_caso, entrada_tipo, saida_texto]
)
with gr.Row():
botao_exportar = gr.Button("Exportar Peça Jurídica para .txt")
saida_arquivo = gr.Textbox(
label="Arquivo Exportado",
interactive=False,
placeholder="O caminho do arquivo exportado será exibido aqui."
)
botao_exportar.click(
exportar_peca,
inputs=saida_texto,
outputs=saida_arquivo
)
return interface
# Executa o app
if __name__ == "__main__":
app = gerar_interface_gradio()
app.launch()
|