Katuokdocs
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": "comprei dia 2 e até agora nada, o rastreio não mexe",
    "perguntas": {
      "setor": {
        "tipo": "escolha",
        "instrucao": "Para qual equipe esta mensagem deve ir?",
        "opcoes": {
          "Cobrança": "valores, boletos, estornos",
          "Entrega": "atraso, rastreio, transportadora",
          "Troca": "troca ou devolução de produto"
        }
      }
    }
  }'
import httpx

r = httpx.post("http://127.0.0.1:8770/v1/decidir", json={
    "modelo": "katuok-1",
    "estado": "comprei dia 2 e até agora nada, o rastreio não mexe",
    "perguntas": {
        "setor": {
            "tipo": "escolha",
            "instrucao": "Para qual equipe esta mensagem deve ir?",
            "opcoes": {
                "Cobrança": "valores, boletos, estornos",
                "Entrega": "atraso, rastreio, transportadora",
                "Troca": "troca ou devolução de produto",
            },
        }
    },
}).json()

print(r["respostas"]["setor"]["escolha"], r["respostas"]["setor"]["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: "comprei dia 2 e até agora nada, o rastreio não mexe",
    perguntas: {
      setor: {
        tipo: "escolha",
        instrucao: "Para qual equipe esta mensagem deve ir?",
        opcoes: {
          "Cobrança": "valores, boletos, estornos",
          "Entrega": "atraso, rastreio, transportadora",
          "Troca": "troca ou devolução de produto",
        },
      },
    },
  }),
}).then((x) => x.json());

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

3. Leia a resposta

{
  "modelo": "katuok-1",
  "respostas": {
    "setor": {
      "tipo": "escolha",
      "escolha": "Entrega",
      "probabilidades": { "Cobrança": 0.02, "Entrega": 0.95, "Troca": 0.03 },
      "certeza": 0.95
    }
  },
  "uso": { "perguntas": 1, "imagem": false },
  "ms": 212
}

4. Próximos passos