docs
Comece aqui

Começo rápido

Da instalação à primeira decisão em poucos minutos.

1. Ligue o servidor

O Katuok roda na sua máquina, com uma placa de vídeo de 12 GB. O servidor escuta só no próprio computador.

python servidor.py
# Katuok ouvindo em http://127.0.0.1:8770
A primeira chamada demora um pouco mais porque o modelo entra na placa de vídeo. Depois disso, cada decisão leva frações de segundo. Se ficar 10 minutos sem uso, o modelo sai da placa sozinho e libera a memória.

2. Faça a primeira pergunta

curl http://127.0.0.1:8770/v1/decidir \
  -H "Content-Type: application/json" \
  -d '{
    "modelo": "katuok-1",
    "estado": "prensa PH-07 perdendo pressão no ciclo, óleo pingando na mangueira do cilindro",
    "perguntas": {
      "esp": {
        "tipo": "escolha",
        "instrucao": "Qual especialidade atende esta ordem?",
        "opcoes": {
          "Mecânica": "vibração, rolamentos, desalinhamento",
          "Elétrica": "motores, quadros, cabos",
          "Hidráulica": "cilindros, mangueiras, perda de pressão"
        }
      }
    }
  }'
import httpx

r = httpx.post("http://127.0.0.1:8770/v1/decidir", json={
    "modelo": "katuok-1",
    "estado": "prensa PH-07 perdendo pressão no ciclo, óleo pingando na mangueira do cilindro",
    "perguntas": {
        "esp": {
            "tipo": "escolha",
            "instrucao": "Qual especialidade atende esta ordem?",
            "opcoes": {
                "Mecânica": "vibração, rolamentos, desalinhamento",
                "Elétrica": "motores, quadros, cabos",
                "Hidráulica": "cilindros, mangueiras, perda de pressão",
            },
        }
    },
}).json()

print(r["respostas"]["esp"]["escolha"], r["respostas"]["esp"]["certeza"])
const r = await fetch("http://127.0.0.1:8770/v1/decidir", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    modelo: "katuok-1",
    estado: "prensa PH-07 perdendo pressão no ciclo, óleo pingando na mangueira do cilindro",
    perguntas: {
      esp: {
        tipo: "escolha",
        instrucao: "Qual especialidade atende esta ordem?",
        opcoes: {
          "Mecânica": "vibração, rolamentos, desalinhamento",
          "Elétrica": "motores, quadros, cabos",
          "Hidráulica": "cilindros, mangueiras, perda de pressão",
        },
      },
    },
  }),
}).then((x) => x.json());

console.log(r.respostas.esp.escolha, r.respostas.esp.certeza);

3. Leia a resposta

{
  "modelo": "katuok-1",
  "respostas": {
    "esp": {
      "tipo": "escolha",
      "escolha": "Hidráulica",
      "probabilidades": { "Mecânica": 0.01, "Elétrica": 0.01, "Hidráulica": 0.98 },
      "certeza": 0.98
    }
  },
  "uso": { "perguntas": 1, "imagem": false },
  "ms": 439
}

4. Próximos passos