I've been writing about learning to cook with LLMs, but I never actually made it public.
The project is at https://github.com/wsargent/recipellm and you can run it from Docker Compose and an API key – it uses Letta so you'll want one of the foundation models i.e. Gemini/Claude/ChatGPT to run it. You have the option of adding Tavily API Key in which case it'll search the web for recipes, import them into Mealie for you, and add notes on how you might like to customize the recipe to your tastes. It's pretty cool.
The nice thing about having a chef agent is that it's smart – you can just pull several recipes together and ask it to aggregate them into a shopping list, and you can even have it tell you what's likely to be in season or what ingredients would work best with various recipes. It can work out various substitutions if you don't have the exact spices available, and can tell you how to do meal planning.
I'm not quite at the meal planning stage. I am at the point where I can do some simple staples on Sunday and have them available through the week. For example, a Mediterranean Chicken Rice Bowl turns out to be near perfect for Sunday afternoons – I can marinade the chicken breast, set up the garlic rice, and caramelize the onions by just leaving them on low heat for an hour, and then it's easy to sear the chicken breast and put the saute together later in the week.
One of the things I really appreciate about the chef agent is that it can factcheck recipes. For example, the chicken bowl recipe says that I can cook onions for 20 minutes and it should be "caramelized" but it turns out that this is a big fat lie.
I've also added ntfy – this is a notification service that will let the agent ping you when cooking is done or it's time to check in on something. In my own local environment, I have this set up on Proxmox and Tailscale, and hooked up so that it will ping me on my iPhone. This is also simple to set up.
One of my goals is to be make the chef agent a little more proactive, so it can suggest recipes and a shopping list every Sunday without prompting, a bit more like Stevens. This is the other reason why I want ntfy on my phone, because I want to give the agent a way to initiate conversations. I'm not quite sure how to do this yet – I don't want to have to set up a full on discord bot or chat bot that can start texting me, but I am running up against the limitations of the "request/response" paradigm that LLMs seem to be based on. I dislike cron jobs on principle, so I've set up https://github.com/wsargent/prefect-notifications using Prefect workflows to send ntfy messages on callback and on irregular schedules, and I'm going to see how far I can take that.
Comments