The technology behind this artificial intelligence (AI) enabled cooking and recipes site

I use two general AI techniques to provide recipe advice:

Heuristic rules for ingredient substitution. These are "hand written" based on my own experience.

Machine learning: I use the data for over 100,000 public domain recipes to automatically learn patterns for combining and substituting ingredients.

This web site is written in the Clojure programming language using the Compojure, Noir, and Hiccup libraires. I use the Postgres database to store each user's on-hand ingredients. Each user is identified by a randomly generated ID that is stored in a cookie in your web browser. Please note that if you use this site from different web browsers, different smart phones of tablets, etc., then you appear to the system as a separate user for each device. I suggest that you use the same web browser or device when using this web site, otherwise you will have to re-enter your ingredients on hand which takes about 2 minutes to do.