Quickstart
Cinco minutos, sem hardware. Você irá buscar uma receita, fazer o hash dela, perguntar se um dispositivo pode cozinhá-la, verificar um traço de temperatura contra a faixa segura de uma operação e exportar um log de cozimento como um traço. Tudo abaixo funciona hoje.
1. Obtenha as ferramentas #
git clone https://github.com/amado2k5/cookwala && cd cookwala
pip install jsonschema pyyaml graphql-core cryptographyhash, dryrun e os exportadores usam apenas a biblioteca padrão do Python. Os outros pacotes são para validação completa e assinaturas. Um pacote pip install cookwala é o próximo no roadmap.
2. Buscar uma receita e gerar seu hash #
curl -s https://cookwala.ai/v1/recipes/shakshuka.cookwala.json -o shakshuka.json
python tools/cookwala_ref.py hash shakshuka.json
# sha256:… (RFC 8785 canonical JSON, without the hash and signature fields)Um executor cozinha exatamente esta revisão e recusa se o hash que lhe é fornecido não coincidir.
3. Este dispositivo consegue cozinhar isto? #
python tools/cookwala_ref.py dryrun shakshuka.json --device examples/capabilities/robot-arm.jsonA resposta é refused com o motivo needs_human_present: o corte não pode ser executado sem supervisão. Adicione uma pessoa:
python tools/cookwala_ref.py dryrun shakshuka.json --device examples/capabilities/robot-arm.json --human-presentAgora está accepted. O plano diz quais etapas o braço faz, quais uma pessoa faz, e como cada etapa será verificada (sensor, estimativa registrada, tempo ou pessoa). Tente a mesma coisa no navegador na home page.
4. Verifique um traço de temperatura contra uma banda de segurança #
import sys; sys.path.insert(0, "tools")
import cookwala_ref as cw
trace = [{"t": 0, "tempC": 60}, {"t": 30, "tempC": 90}, {"t": 60, "tempC": 94}, {"t": 90, "tempC": 99}]
print(cw.check_envelope("cw.op.simmer", trace, target={"value": 94, "tolerance": 3}))
# {'envelopeOk': False, 'targetOk': False, 'reason': 'left_envelope'} (99 °C is a boil, not a simmer)
print(cw.convert(2, "tbsp", "ml")) # 30.0
print(cw.convert(1, "cup", "g", 0.53)) # 127.2 (flour)5. Valide tudo e execute os testes de conformance #
python tools/validate_specs.py # schemas, examples, recipe temperatures, API references
python tools/run_conformance.py # 106 vectors (Core and profiles), incl. RFC 8785 and RFC 8032 results6. Transforme um log de cozimento em um trace ou um dataset #
python tools/execlog_export.py otel shakshuka.json examples/core/execution-log.json trace.json
python tools/execlog_export.py lerobot shakshuka.json examples/core/execution-log.json my-dataset/trace.json é carregado em qualquer backend OpenTelemetry. my-dataset/meta/ contém uma tarefa por etapa da receita para datasets no estilo LeRobot. Ambos recusam logs cujo household não optou por participar.
Onde agora #
| Você é | Next |
|---|---|
| Construindo um robô ou eletrodoméstico | Robots, ROS 2 and datasets, depois a Core API |
| Construindo um agente de IA | Agent rules e o agent-safety benchmark |
| Operando uma cozinha ou food bank | Humanitarian Profile |
| Escrevendo receitas | Recipe format e Contributing |