← All work

TrailBlaze Innovations

Dieters get meal plans with every calorie computed from food data, not guessed

TrailBlaze Innovations wanted people to describe themselves by voice or text and get a personal meal plan. We built the MVP so the model extracts and phrases, while calories, weights and daily values come from food data and code.

Healthcare & WellnessAI meal planning chatBuilt from zero

The challenge

A diet plan is only useful if every figure is right, and language models state numbers they do not have. The founder wanted plans from a spoken or typed description, fast.

What we did

A LangGraph pipeline where the model extracts the user's details and phrases the answer, while food data, nutrition APIs and code produce every calorie, weight and daily value.

The outcome

The founder reviewed a working voice and text MVP in the client's own Azure account, and his feedback round added a mistakes disclaimer and a no stored data note.

Built
Web chat MVP with voice and text input
Numbers from
Food data and nutrition APIs, computed in code
Runs in
The client's own Azure account
Required first
Height, weight, age, gender and diet preference

The starting point

A web chat where a person shares height, weight, age, goals and diet preference, by voice or text, and gets a personalized meal plan with calories, nutrients and daily value percentages. TrailBlaze Innovations was building the app on Microsoft's stack and wanted a working MVP first.

What had to change

Language models are confident with numbers they do not have, and a diet plan is only useful if every figure is right. Each plan also needed real ingredients with weights, not generic advice.

What could not break

  • Every calorie, weight and daily value comes from food data and code, never from the model
  • No plan until height, weight, age, gender and diet preference are known
  • Everything runs in the client's own Azure account, with a monthly budget alert
  • The app says it can make mistakes and that it stores no user data
  • A short window to a working MVP

The calls we made

We framed the model as the interface, not the source of any number.

  1. 01

    Figures computed in code

    Calories, ingredient weights and daily values come from a loaded food database and external nutrition APIs, calculated in code before the model sees them.

  2. 02

    Refuse to plan without the basics

    A validation step checks for height, weight, age, gender and diet preference and asks for whatever is missing before any plan is made.

  3. 03

    One step per graph node

    Input detection, extraction with a typed schema, validation, food search, the math and the table output each run as their own LangGraph node, so each step can be checked on its own.

  4. 04

    Trust notes are product scope

    The founder asked for a note that the app can make mistakes, a note that user data is not stored and no model picker, and we built those into the MVP.

    Ruled out

    Letting users pick the model, as the first version allowed.

How the system fits together

voice or textCopilotKitvoice noteextract, phrasefood searchFDC searchnutrientsfood datacomputed figurestabletable and chartPeople planningmealsHeight, weight, age,goal, dietNext.js chatCopilotKit, voiceinput, tables, chartLangGraphpipelineDetect, extract,validate, searchAzure OpenAIgpt-4oExtracts details,phrases the planWhisper on AzureTurns voice notesinto textNutrition APIsSpoonacular,…Food databaseFDC food data loadedfrom JSONNutrition math incodeCalories, weights,daily valuesMeal plantablePhrased aroundcomputed figures
PeopleBuilt by DaticsAI modelOutside serviceData storeThe model never produces a number: every figure is computed from food data in code, and everything runs in the client's own Azure account.

What we built

01

Grounded nutrition pipeline

Keyword extraction with a Pydantic schema, food search over FDC data and several nutrition APIs, and code that calculates calories, ingredient weights per meal and daily value percentages.

02

Required details check

A validation step that holds the plan until height, weight, age, gender and diet preference are present, and asks for what is missing.

03

Chat with voice input

A Next.js chat connected to the Python graph through CopilotKit, with speech to text in the browser, meal plans rendered as tables and a nutrition chart.

04

Client cloud setup

Azure OpenAI gpt-4o and Whisper deployments with raised quota, one virtual machine for frontend, backend and database, and a monthly budget alert, all in the client's account.

How it works

Speak or type

The user describes themselves and their goal by voice or text.

Extract and validate

The model pulls out structured details, and the app asks for anything required that is missing.

Search food data

The pipeline finds meals, ingredients and nutrients in the food database and nutrition APIs.

Calculate

Code computes calories, ingredient weights and daily value percentages.

Phrase the plan

The model writes the answer around the computed figures and returns a structured table.

A closer look

Plan returned for one request (sample values)Sample data
{
  "profile": {"age": 34, "gender": "female", "height_cm": 168, "weight_kg": 70,
              "diet": "vegetarian", "goal": "lose weight"},
  "daily_target_kcal": 1600,
  "columns": ["Meal", "Ingredients (g)", "Calories", "Protein (g)", "Daily value"],
  "rows": [
    ["Breakfast: overnight oats", "rolled oats 60, Greek yogurt 150, blueberries 80",
     420, 24, "26%"],
    ["Lunch: lentil and feta salad", "cooked lentils 200, feta 40, greens 60, olive oil 10",
     438, 24, "27%"],
    ["Snack: apple and almonds", "apple 180, almonds 20", 210, 5, "13%"],
    ["Dinner: tofu stir fry", "firm tofu 150, cooked rice 150, bell pepper 100, oil 10",
     524, 28, "33%"]
  ],
  "total": {"calories": 1592, "protein_g": 81, "daily_value": "99%"}
}

What changed

The founder reviewed a working voice and text MVP running in the client's own Azure account, with every calorie, weight and daily value traceable to food data and code. The trust requests from his feedback round were built in, and the project content was handed over to a folder the client controls.

Under the hood

Datics role
Product built by Datics
Integrations
Spoonacular, a RapidAPI nutrition API, an ingredients nutrients API, and FDC food data loaded into the project database.
Boundary
The model extracts details and phrases answers, every calorie and daily value figure comes from data and code, and required details are checked first.
Deployment
Azure OpenAI gpt-4o and Whisper with raised quota, and one virtual machine for frontend, backend and database, in the client's account.

AI and models

LangGraphAzure OpenAIWhisper

Apps and APIs

PythonFastAPINext.js

Also in the stack

CopilotKitSpoonacular API

How it shipped

  1. Proposal and kickoff

    A proposal for the MVP, then a kickoff meeting with the founder.

  2. Backend, data and cloud

    A FastAPI backend, the food database loaded from JSON and checked, and Azure OpenAI resources in the client's account.

  3. Pipeline and nutrition math

    LangGraph nodes, food API integrations, calorie and daily value calculations, the virtual machine, and quota and rate limit fixes.

  4. Interface and validation

    The nutrition chart, input validation, speech to text and the chat view.

  5. Client feedback round

    The founder's feedback added the disclaimer, the no stored data note and clearer tables, and removed the model picker.

Short sprints to a working MVP

Backend, data, cloud, pipeline and chat were sequenced in short sprints so the founder could review a working product early.

Inside the client's accounts

Models, quota, the virtual machine and the budget alert lived in the client's Azure account, feedback came through the client's own sheet, and all project content went to a folder the client controls.

What this unlocked

The same pattern, the model as the interface and numbers from trusted data, carries into any product where AI answers with figures.

Have a product with the same kind of constraints?

Tell us what already exists and what you want it to do. We will tell you what it takes.

Book a 30-minute Product Review