This project combines two things - a working AI web app and a deep dive into LangChain agents.
Pick a cuisine. The AI names your restaurant, then builds a full menu for it powered by LLaMA 3.3 70B running on Groq, chained together using LangChain LCEL pipelines.
Beyond the app, langchain_groq.ipynb goes further building an autonomous agent that can search the web, look up Wikipedia, solve maths, and hold a conversation with memory.
Select a cuisine โ get a restaurant name โ get a full menu. Instantly.
| Cuisine | Generated Name (example) | Menu Style |
|---|---|---|
| ๐ณ๐ฌ Nigerian | Naija Royale | Jollof, Egusi, Suya Platter |
| ๐ฎ๐น Italian | La Bella Cucina | Pasta, Risotto, Tiramisu |
| ๐ฒ๐ฝ Mexican | Casa del Sol | Tacos, Guac, Churros |
| ๐ธ๐ฆ Arabic | Al Majlis | Shawarma, Hummus, Baklava |
| ๐บ๐ธ American | The Liberty Grill | Burgers, Ribs, Cheesecake |
How it works under the hood:
User picks cuisine
โ
Chain 1 โ "Suggest a fancy restaurant name for {cuisine} food"
โ
Chain 2 โ "Suggest menu items for {restaurant_name}"
โ
Streamlit displays results
Two prompts. Two chains. One clean output. That's LCEL sequential chaining.
A standalone LangChain agent built from scratch that can:
- ๐ Search the web via Google (Serper API)
- ๐ Look up Wikipedia for factual answers
- ๐งฎ Solve calculations with a built-in calculator tool
- ๐ง Remember conversations using buffer and window memory
The agent doesn't just answer, it thinks:
Question โ Thought โ Action โ Observation โ Final Answer
This is the ReAct reasoning pattern that powers modern AI assistants.
| Tool | Purpose |
|---|---|
| ๐ฆ LangChain | Chains, agents, memory, prompt templates |
| โก Groq | Blazing fast LLM inference |
| ๐ค LLaMA 3.3 70B | The brain behind every response |
| ๐ฅ๏ธ Streamlit | Web interface |
| ๐ Python 3.10 | Core language |
langchain-groq-restaurant-agent/
โ
โโโ ๐ RestaurantNameGenerator/
โ โโโ main.py # Streamlit UI
โ โโโ langchain_helper.py # LCEL chain logic
โ โโโ secret_key.py # Your API keys go here
โ
โโโ ๐ langchain_groq.ipynb # Agent + memory implementation
โโโ ๐ requirement.txt
โโโ ๐ secret_key.py # Root-level keys for the notebook
โโโ ๐ README.md
- Removed - import langchain.py
- Removed - from langchain_groq import ChatGroq
- Converted CORRECT_PASSWORD = "your password" # Hardcoded in code to CORRECT_PASSWORD = st.secrets["APP_PASSWORD"] # Instead of hardcoded
git clone https://github.com/Dominionai/langchain-groq-restaurant-agent.git
cd langchain-groq-restaurant-agentpython -m venv ai_env
# Windows
ai_env\Scripts\activate
# Mac / Linux
source ai_env/bin/activatepip install -r requirement.txtFill in secret_key.py:
groq_api_key = "" # โ console.groq.com (free)
serper_api_key = "" # โ serper.dev (free tier)
APP_PASSWORD = "" # โ add your passwordcd RestaurantNameGenerator
streamlit run main.py| Concept | Where |
|---|---|
PromptTemplate + LCEL pipe | operator |
langchain_helper.py |
| Sequential chaining (output โ next input) | langchain_helper.py |
StrOutputParser |
langchain_helper.py |
| Tool-calling agent (Search, Wikipedia, Calculator) | langchain_groq.ipynb |
| ReAct reasoning loop | langchain_groq.ipynb |
ConversationBufferMemory |
langchain_groq.ipynb |
ConversationBufferWindowMemory |
langchain_groq.ipynb |
- Deploy to Streamlit Cloud (live demo link)
- Add custom cuisine input by the user
- RAG project - chat with your own documents
- Multi-agent system with LangGraph