docs
Receitas

Ordens de manutenção

Cada ordem vai para a especialidade certa, com prioridade e aviso de parada.

As perguntas

PERGUNTAS = {
  "esp": {"tipo": "escolha", "instrucao": "Qual especialidade atende esta ordem de manutenção?", "opcoes": {
      "Mecânica": "desalinhamento, vibração, redutores, rolamentos",
      "Elétrica": "motores, quadros, disjuntores, sobrecorrente, cabos",
      "Hidráulica": "cilindros, mangueiras, bombas, perda de pressão",
      "Instrumentação": "transmissores, medidores, sensores, malhas de controle",
      "Lubrificação": "falta de óleo ou graxa, nível de lubrificante",
      "Caldeiraria": "trincas, corrosão, chapas e estruturas soldadas"}},
  "parar": {"tipo": "sim_nao", "instrucao": "É preciso parar o equipamento agora?",
            "criterio": "há risco de quebra, acidente ou dano grave se continuar operando"},
  "pri": {"tipo": "nota", "instrucao": "Qual a prioridade da intervenção?",
          "niveis": {"1": "baixa", "2": "média", "3": "alta", "4": "emergência"}},
}

O fluxo

def encaminhar(ordem):
    r = decidir(ordem, PERGUNTAS)["respostas"]
    if r["parar"]["sim"] > 0.8:
        alarme_operacao(ordem)
    if r["esp"]["certeza"] < 0.8:
        return "revisao", r["pri"]["media"]
    return r["esp"]["escolha"], r["pri"]["media"]

Medido

12 ordens de mineradora, estaleiro, usina e fábrica: especialidade certa em 10. As duas trocas foram lubrificação lida como mecânica, ambas com certeza abaixo de 0,8: com o limite acima, as duas vão para revisão.

A demonstração roda este fluxo ao vivo.