mapfarm-cuisine (0.13.2)
Installation
pip install --index-url https://git.it.iaos.cc/api/packages/mapfarm/pypi/simple/ --extra-index-url https://pypi.org/simple mapfarm-cuisineAbout this package
Ontologie culinaire IAOS — schémas corpus + gates déterministes (génération gouvernée de recettes/menus).
mapfarm-cuisine — cuisine générative gouvernée
Vitrine publique : cook.iaos.cc · présentation : /presentation
Cuisine générative gouvernée : par défaut, le LLM crée des variations à partir
de recettes connues et d'un graphe d'association d'ingrédients (accords + co-occurrence
déduite du corpus + évidence moléculaire) — jamais un ingrédient, une technique ou une
température hors corpus validated (CDC v0.3, C12). Un mode « gouverné strict »
(menu_composer) reste disponible : le LLM y sélectionne et narre uniquement, sans
créer. Dans les deux cas, toute composition passe par les mêmes gates déterministes
(allergènes INCO, sécurité sanitaire, régimes, coût, saison), validée par un humain
(porte HITL), puis figée avec fiche technique — chaque ligne tracée id@version
(journal EVIDENCED_BY). Une composition créative validée peut être promue en vraie
fiche corpus par le chef (boucle mémoire → draft → revue).
Les quatre briques
| Brique | Rôle | Où |
|---|---|---|
cuisine/ |
Socle pur (package PyPI mapfarm-cuisine) : schémas, 5 gates recette + 5 gates menu, moteur compose_menu (déterministe, swap gouverné, classement diversifié), fiche technique, graphe d'association (pairing), boucle de promotion (promote), orchestration composer (LLM injecté), corpus embarqué |
PyPI Gitea |
service/ |
cuisine-composer — reçoit les dispatchs du kernel iaos : menu_creatif (génératif, PAR DÉFAUT) et menu_composer (sélection stricte), en service_url (§3.3) |
VM103:8017 (interne) |
panel/ |
Vitrine prospect — proxy vers le run API du kernel (clé scopée, gardes anti-abus, toggle créatif/gouverné) | VM103:8018 → cook.iaos.cc |
corpus/ |
Source de vérité — documents validated + propositions créatives draft en attente de revue chef |
dépôt (versionné) |
Corpus (source de vérité)
207 documents seed (corpus/*.yaml) : 12 cuisines (Bourgogne, France, Italie, Levant,
Inde, Thaïlande, Mexique, Espagne, Maghreb, Grèce, Japon, Vietnam), bases/sauces mères
en sous-recettes (D4), 12 classiques Escoffier structurés (Guide culinaire 1903,
domaine public, Gutenberg 71395), substituts validés (swap gouverné), accords à
évidence moléculaire (socle taste, D8 : gingembre∩ail = 33 composés partagés) —
et un graphe de 514+ paires déduites par co-occurrence dans les recettes validées
(cuisine.pairing, C12bis), qui alimente la génération créative sans attendre que
chaque paire soit hand-curated.
Ligne rouge : aucune température sanitaire inventée. Les protéines animales cuites
passent par une technique dont la température à cœur n'est pas sourcée → G3 les
bloque jusqu'à la passe chef (docs/D2-SESSION-CHEF.md).
Commandes
pip install -r requirements.txt
python -m cuisine.validate corpus/ # schéma + règles d'état sur les 207 docs
python -m cuisine.menu corpus/ # composer des menus (CLI, déterministe)
python -m cuisine.pairing corpus/ --for <ing_id> # graphe d'association (audit chef)
python -m cuisine.taste_bridge corpus/ # enrichir l'évidence moléculaire (API taste)
python -m cuisine.edges corpus/ --impact <id> # impact de dépréciation
python -m cuisine.promote <export.json> corpus/ # propositions créatives → draft corpus
pytest && ruff check . # py312, line-length 100
Déploiement (VM103, /opt/cuisine)
docker compose -f docker-compose.prod.yml up -d --build # api (8017) + panel (8018)
Secrets : .env (IAOS_DISPATCH_KEY, LITELLM_URL) et panel.env (IAOS_PANEL_KEY,
DEMO_CODE?) — voir service/.env.example et panel/.env.example. Jamais committés.
Publication du package : python -m build puis twine vers
https://git.it.iaos.cc/api/packages/mapfarm/pypi.
Documents
docs/CDC-ontologie-culinaire-v0.2.md— décisions D1–D10 (ontologie, gates).docs/CDC-compositeur-culinaire-v0.2.md— décisions C1–C11 (compositeur) + amendement v0.3 §0bis (C12) : cuisine générative, mode par défaut.docs/D2-SESSION-CHEF.md— checklist chef : sourcer les températures → débloquer.