File size: 3,394 Bytes
2229f0f
 
ea4569a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2229f0f
 
ea4569a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
657ae00
 
ea4569a
 
657ae00
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
import gradio as gr

# Simple legal information functions

def direito_trabalhista(pergunta):
    respostas = {
        "verbas": "Verbas trabalhistas incluem: salário, férias + 1/3, 13º, FGTS, aviso prévio e horas extras.",
        "hora extra": "Horas extras devem ser pagas com adicional de 50% ou 100% em domingos e feriados.",
        "assédio": "Assédio moral ou sexual no trabalho gera direito a indenização por danos morais.",
    }
    for k, v in respostas.items():
        if k in pergunta.lower():
            return v
    return "Informação trabalhista não encontrada, tente detalhar a pergunta."


def direito_consumidor(pergunta):
    respostas = {
        "garantia": "Todo produto possui garantia legal mínima de 90 dias para itens duráveis.",
        "arrependimento": "Compras online possuem direito de arrependimento de 7 dias.",
        "negativacao": "Inscrição indevida em SPC/SERASA gera indenização por danos morais.",
    }
    for k, v in respostas.items():
        if k in pergunta.lower():
            return v
    return "Informação de direito do consumidor não encontrada."


def direito_previdenciario(pergunta):
    respostas = {
        "aposentadoria": "As aposentadorias podem ser por idade, tempo de contribuição ou especial.",
        "auxilio": "Auxílio-doença é concedido quando há incapacidade temporária comprovada.",
        "pensao": "Pensão por morte é devida aos dependentes do segurado falecido.",
    }
    for k, v in respostas.items():
        if k in pergunta.lower():
            return v
    return "Informação previdenciária não encontrada."


def direito_civil(pergunta):
    respostas = {
        "contrato": "Contratos podem ser revisados judicialmente em caso de abuso ou cláusulas ilegais.",
        "indenizacao": "Danos morais e materiais podem gerar obrigação de indenizar.",
        "propriedade": "Posse e propriedade são protegidas pelo Código Civil.",
    }
    for k, v in respostas.items():
        if k in pergunta.lower():
            return v
    return "Informação civil não encontrada."


def direito_familia(pergunta):
    respostas = {
        "divorcio": "O divórcio pode ser consensual ou litigioso, com ou sem partilha.",
        "guarda": "A guarda pode ser compartilhada ou unilateral, conforme o melhor interesse da criança.",
        "alimentos": "Pensão alimentícia deve respeitar o binômio necessidade x possibilidade.",
    }
    for k, v in respostas.items():
        if k in pergunta.lower():
            return v
    return "Informação de direito de família não encontrada."


def responder(area, pergunta):
    area = area.lower()
    if area == "trabalhista": return direito_trabalhista(pergunta)
    if area == "consumidor": return direito_consumidor(pergunta)
    if area == "previdenciario": return direito_previdenciario(pergunta)
    if area == "civil": return direito_civil(pergunta)
    if area == "familia": return direito_familia(pergunta)
    return "Área não reconhecida."


opcoes = ["Trabalhista", "Consumidor", "Previdenciario", "Civil", "Familia"]

ui = gr.Interface(
    fn=responder,
    inputs=[gr.Dropdown(opcoes, label="Área Jurídica"), gr.Textbox(label="Pergunta")],
    outputs=gr.Textbox(label="Resposta"),
    title="JURIX – Assistência Jurídica",
    description="OLÁ, EU SOU A JURIX, COMO POSSO AJUDAR?"
)

ui.launch()