|
|
import gradio as gr |
|
|
import requests |
|
|
|
|
|
SYSTEM_PROMPT = ( |
|
|
"Você é JuriX, uma IA jurídica profissional, objetiva e clara. " |
|
|
"Responda sempre de forma respeitosa e somente dentro das áreas do direito permitidas." |
|
|
) |
|
|
|
|
|
API_URL = "https://api.openai.com/v1/chat/completions" |
|
|
API_KEY = "SUA_CHAVE_AQUI" |
|
|
|
|
|
def responder(mensagens, nova_mensagem): |
|
|
mensagens.append(("Usuário", nova_mensagem)) |
|
|
|
|
|
payload = { |
|
|
"model": "gpt-4o-mini", |
|
|
"messages": [ |
|
|
{"role": "system", "content": SYSTEM_PROMPT}, |
|
|
*[ |
|
|
{"role": "user" if m[0] == "Usuário" else "assistant", "content": m[1]} |
|
|
for m in mensagens |
|
|
] |
|
|
] |
|
|
} |
|
|
|
|
|
headers = { |
|
|
"Authorization": f"Bearer {API_KEY}", |
|
|
"Content-Type": "application/json" |
|
|
} |
|
|
|
|
|
resposta = requests.post(API_URL, json=payload, headers=headers).json() |
|
|
output = resposta["choices"][0]["message"]["content"] |
|
|
|
|
|
mensagens.append(("JuriX", output)) |
|
|
return mensagens, gr.update(value="") |
|
|
|
|
|
with gr.Blocks(theme="gradio/soft") as app: |
|
|
gr.Markdown("# **🤖 JuriX – Assistente Jurídica Automatizada**") |
|
|
|
|
|
chat = gr.Chatbot( |
|
|
value=[("JuriX", "Olá! 👋 Somos a **JuriX**, e estamos aqui para te ajudar com dúvidas jurídicas!")] |
|
|
) |
|
|
|
|
|
estado = gr.State([]) |
|
|
|
|
|
entrada = gr.Textbox(placeholder="Digite sua pergunta jurídica aqui...") |
|
|
enviar = gr.Button("Enviar") |
|
|
|
|
|
enviar.click(responder, [estado, entrada], [chat, entrada]) |
|
|
|
|
|
app.launch() |
|
|
|