Bonjour à tous ! La version 1.1.0 de Gram est disponible. Cette mise à jour apporte quelques ajouts pratiques sur lesquels j’ai travaillé récemment, principalement autour de l’import de recettes, des bases de calcul nutritionnel et des outils pour la base d’ingrédients.

Voici un résumé des nouveautés principales.

Import depuis YouTube & Shorts

La commande gram import accepte désormais les liens de vidéos et Shorts YouTube. En s’appuyant sur la compréhension vidéo multimodale de Gemini, Gram analyse l’image et l’audio pour extraire les ingrédients, étapes et durées directement dans un fichier .gram.

J’ai également ajouté un aperçu de la durée et du coût estimé en tokens avant le lancement (avec une limite de sécurité --max-duration) pour éviter les mauvaises surprises sur des vidéos très longues.

Nutrition par portion et pour 100 g

Jusqu’ici, les tableaux nutritionnels n’affichaient que le total brut de la recette. Il est maintenant possible d’afficher les valeurs :

  • Par portion : si le champ portions: est renseigné dans l’en-tête, les valeurs par portion restent fixes même en ajustant les quantités de la recette.
  • Pour 100 g : calculées à partir de la masse brute assemblée des ingrédients.

Vous pouvez choisir la base avec l’option --nutrition <auto|total|per-portion|per-100g> dans la CLI (gram view, gram export, gram print), ou via le sélecteur dans le playground web et l’extension VS Code.

Enrichissement interactif de la base & vérifications physiques

Pour rendre la maintenance de ingredients.yaml plus sûre et plus agréable au quotidien :

  • Revue interactive : gram db enrich propose un prompt pas à pas pour vérifier, ajuster ou ignorer les suggestions de l’IA avant de les écrire sur le disque.
  • Contrôles de cohérence : gram db validate vérifie la cohérence calorique (facteurs d’Atwater) et signale les densités ou sous-macros improbables.
  • Traçabilité : Les valeurs ajoutées par l’IA sans modification manuelle sont taguées # [LLM] dans ingredients.yaml pour garder trace de leur origine.

Choix du fournisseur et du modèle d’IA

Toutes les commandes utilisant l’IA (gram import, gram db lint, gram db enrich) acceptent désormais les options --model, --provider et --pick-model, ce qui permet de tester rapidement d’autres modèles sans toucher à la configuration globale.


Autres correctifs & ajustements

  • Garde-fous à l’import : gram import vérifie l’intégrité de l’AST pour éviter d’écrire un fichier tronqué si le modèle s’arrête en plein milieu, et redirige ses logs sur stderr pour que la redirection (> recette.gram) reste propre.
  • Liste de courses : Correction d’un bug qui dupliquait certains ingrédients composites avec &.
  • Pourcentages et masse totale : Les ingrédients définis en pourcentage d’un autre (comme @eau{60% @&farine}) sont maintenant bien inclus dans le calcul du poids total.

Pour consulter l’ensemble des modifications techniques, vous pouvez vous référer au Changelog. Comme d’habitude, les retours sont les bienvenus !