API docs

Describe a craving or list what you have. Search combines ingredients, words, and meaning.

Inside the showcase

How recipe search works

This app retrieves recipes from a fixed English collection. It does not generate recipes or let a language model invent the answer.

Two ways to search

Describe a dishWrite naturally in Swedish, English, Spanish, or another language supported by the multilingual model.
Use ingredientsList what you have. Results may still require additional ingredients.

Three retrieval signals, one final ranker

  1. 1
    Ingredient overlap

    Canonical ingredient terms reward recipes that cover what you listed.

  2. 2
    Lexical similarity

    Character-based TF-IDF catches exact wording and many misspellings.

  3. 3
    Semantic similarity

    Local multilingual embeddings connect fuzzy meaning across languages.

  4. 4
    Hybrid ranking

    A small weighted formula combines those three signals. Natural-language searches emphasize meaning, while ingredient lists emphasize coverage. Every component remains inspectable through the API.

How to read a result

Cards use compact icons for the best available time, source yield, and ingredient count. The clock prefers a verified total time, then falls back to cook or prep time. Open a card for clearly labeled prep, cook, total, and yield facts, followed by the source-backed ingredients and method.

What happens with a broad request?

The app cannot know what you have eaten before. For requests such as “surprise me,” it favors less common ingredient combinations in this collection and reduces repetitive results. Other unclear requests receive varied ideas plus a suggestion for refining the search.

Where AI fits

The main AI technique is the local multilingual embedding model. An optional Azure language model can help extract constraints from complex wording. It returns structured fields only. The local ranker still chooses the recipes, and the app continues to work when Azure is disabled or unavailable.

Privacy, grounding, and limits

  • Cloud credentials stay on the server and are supplied through the host’s secret manager. They are never sent to the browser or stored in this repository.
  • If optional Azure interpretation is enabled, the backend may send the search text to that configured service. This application does not persist search queries.
  • Cards use the source description when it exists. A factual title-and-ingredient summary is used when it does not.
  • Timing, yield, and publisher attribution come from the recipe record. A total time is shown only when both prep and cook time are known.
  • The supplied collection rarely includes method steps. The deployed profile adds them only after an exact title and strict ingredient match against an instruction-bearing corpus. The app does not invent missing methods.
  • Publisher marks are bundled with this site for attribution. No publisher is contacted until you choose to open its source link.
  • Ingredient exclusions improve ranking but are not an allergy or dietary safety guarantee.
Explore the API