Limitations & Future Directions
This page summarizes prototype-level limitations and technical directions considered for the next stage.
1. Technical limitations in the prototype
Dishire was a prototype focused on validating a multi-step LLM pipeline and basic recommendation flows. It did not reach a production-grade level of automation or personalization, and remained limited in the following ways:
- Session-only recommendations — Each request was handled as a single session, without long-term storage of user history or preference patterns.
- Static prompt templates — Instead of generating or tuning prompts dynamically, the system mostly relied on predefined templates with simple data injection.
- No automatic routing — Users had to manually choose a recommendation mode (e.g., standard / ingredient-based / context-based). The system did not classify input text and route to an appropriate flow automatically.
- Incomplete validation logic — A “Validate” step existed in the pipeline, but automated checking/correction was only a skeleton.
- No evaluation for parallel candidates — When multiple candidates were generated, the prototype did not implement a scoring or selection algorithm.
These limitations were also useful: they clarified what should be prioritized in a next iteration.
2. Expanding toward automatic routing (classification-based recommendation)
In the prototype, the user chose the recommendation mode explicitly. For a real service, it is more natural for the system to infer which flow should be used from the input text and profile constraints.
- “My stomach feels upset…” → context-based (condition-aware)
- “I have chicken breast and onions” → ingredient-based
- “I want something comforting…” → standard / emotion-aware
A practical next step is to start with rule-based routing and gradually evolve to a lightweight text classifier or embedding-based router that maps input → recommendation type.
3. Personalization engine using user history
A longer-term direction was to evolve Dishire from a “single-use tool” into a recipe partner that learns with the user. This requires a personalization engine built on user history.
- Build a preference representation from recent selections, searches, and feedback logs
- Re-rank recipe candidates based on similarity to user preference signals
- Adjust recommendation weights using repeated patterns by mood/time/context
In the prototype, recommendations were limited to session-level interactions, and this personalization pipeline stayed at the design-idea level.
4. Prompt generation and tuning system
Static templates provide stability, but they do not scale well to cover diverse contexts. The eventual goal was a structure where prompts evolve with data and experimentation.
- Separate prompt versions by user groups (e.g., diet users, beginner cooks)
- Prompt rewriting and A/B tests driven by logs
- Parameterized prompts for context/emotion combinations (e.g., comfort, light, fast)
Dishire implemented static templates with partial dynamic insertion only. Automatic prompt generation/tuning was left as a next-stage challenge.
5. Quality evaluation layer for the multi-step pipeline
To fully benefit from a multi-step pipeline, the system needs an automated quality evaluation layer that checks outputs at each stage.
- Consistency checks between ingredient lists and cooking steps
- Constraint checks for allergies/diet/religious restrictions
- Schema validation (whether outputs follow the expected format)
In the prototype, the Validate step existed mainly as a structural placeholder. A future design could combine rule-based checks with LLM-based self-correction.
6. Closing reflection
Dishire remained a prototype, but the process provided hands-on experience in treating LLMs as a service component rather than a one-off API call.
By implementing prompt templates, a multi-step generation pipeline, and constraint-aware routing experiments, I learned to view LLM systems as an integrated structure where model · prompts · data · and UX must work together.
While Dishire is not a finished product, it produced practical insight into common structural issues in LLM-based recommendation systems and concrete ways to improve them.