Quickstart
Fünf Minuten, keine Hardware. Sie werden ein Rezept abrufen, es hashen, fragen, ob ein Gerät es kochen kann, eine Temperaturspur gegen das sichere Band einer Operation prüfen und ein Kochprotokoll als Spur exportieren. Alles unten funktioniert heute.
1. Hol dir die Werkzeuge #
git clone https://github.com/amado2k5/cookwala && cd cookwala
pip install jsonschema pyyaml graphql-core cryptographyhash, dryrun und die Exporter verwenden nur die Python-Standardbibliothek. Die anderen Pakete dienen der vollständigen Validierung und Signaturen. Ein pip install cookwala Paket ist next auf der Roadmap.
2. Ein Rezept abrufen und hashen #
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)Ein Executor kocht genau diese Revision und verweigert, wenn der übergebene Hash nicht übereinstimmt.
3. Kann dieses Gerät es kochen? #
python tools/cookwala_ref.py dryrun shakshuka.json --device examples/capabilities/robot-arm.jsonDie Antwort ist refused mit dem Grund needs_human_present: das Schneiden darf nicht unbeaufsichtigt ausgeführt werden. Fügen Sie eine Person hinzu:
python tools/cookwala_ref.py dryrun shakshuka.json --device examples/capabilities/robot-arm.json --human-presentJetzt ist es accepted. Der Plan besagt, welche Schritte der Arm ausführt, welche eine Person ausführt und wie jeder Schritt überprüft wird (Sensor, protokolliert geschätzter Wert, Zeit oder Person). Versuchen Sie dasselbe im Browser auf der home page.
4. Überprüfen eines Temperaturverlaufs gegen ein sicheres Band #
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. Validieren Sie alles und führen Sie die Conformance-Tests aus #
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. Einen Kochlog in einen Trace oder einen Datensatz umwandeln #
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 wird in jedes OpenTelemetry-Backend geladen. my-dataset/meta/ enthält eine Aufgabe pro Rezeptschritt für LeRobot-Stil Datensätze. Beide verweigern Logs, deren household nicht opt in gewählt hat.
Wo als Nächstes #
| Sie sind | Next |
|---|---|
| Bau eines Roboters oder Geräts | Robots, ROS 2 and datasets, dann die Core API |
| Bau eines KI-Agenten | Agent rules und der agent-safety benchmark |
| Betrieb einer Küche oder einer food bank | Humanitarian Profile |
| Schreiben von Rezepten | Recipe format und Contributing |