Spaces:
Running
Running
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 | |
def gerar_peca_juridica_criminal(informacoes_caso, tipo_peca): | |
""" | |
Gera uma peça jurídica criminal em português 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, 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"] | |
# Configuração do app Gradio | |
def gerar_interface_gradio(): | |
""" | |
Configura a interface do Gradio para gerar peças jurídicas. | |
""" | |
with gr.Blocks() as interface: | |
gr.Markdown("## Gerador de Peças Jurídicas Criminais") | |
gr.Markdown( | |
"Insira as informações detalhadas do caso e escolha 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 aqui...", | |
lines=5 | |
) | |
entrada_tipo = gr.Textbox( | |
label="Tipo de Peça Jurídica", | |
placeholder="Exemplo: habeas corpus, petição inicial..." | |
) | |
botao_gerar = gr.Button("Gerar Peça Jurídica") | |
saida_texto = gr.Textbox(label="Peça Jurídica Gerada", lines=15) | |
botao_gerar.click( | |
gerar_peca_juridica_criminal, | |
inputs=[entrada_caso, entrada_tipo], | |
outputs=saida_texto | |
) | |
return interface | |
# Executa o app | |
if __name__ == "__main__": | |
app = gerar_interface_gradio() | |
app.launch() | |