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.
- 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.
- 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.
- 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.
- 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 outLetting users pick the model, as the first version allowed.
How the system fits together
What we built
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.
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.
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.
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
{
"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
Apps and APIs
Also in the stack
How it shipped
Proposal and kickoff
A proposal for the MVP, then a kickoff meeting with the founder.
Backend, data and cloud
A FastAPI backend, the food database loaded from JSON and checked, and Azure OpenAI resources in the client's account.
Pipeline and nutrition math
LangGraph nodes, food API integrations, calorie and daily value calculations, the virtual machine, and quota and rate limit fixes.
Interface and validation
The nutrition chart, input validation, speech to text and the chat view.
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.
Related work
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.
