Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -87,7 +87,7 @@ def process_message(message, history):
|
|
87 |
# Step 3: Ingredient selection
|
88 |
elif chat_state.step == "ingredient":
|
89 |
chat_state.ingredient = message.lower().strip() # Ensure no extra spaces or case issues
|
90 |
-
#
|
91 |
category = "nonveg" if "non" in chat_state.category else "veg"
|
92 |
|
93 |
# Check if the ingredient exists in the food database
|
@@ -105,7 +105,6 @@ def process_message(message, history):
|
|
105 |
|
106 |
# Step 4: Nutrition preference
|
107 |
elif chat_state.step == "nutrition":
|
108 |
-
# Sanitize and normalize input (remove spaces, handle case)
|
109 |
nutrition = message.lower().replace(" ", "").strip() # Remove spaces and make lowercase
|
110 |
chat_state.nutrition = nutrition
|
111 |
category = "nonveg" if "non" in chat_state.category else "veg"
|
@@ -113,7 +112,6 @@ def process_message(message, history):
|
|
113 |
|
114 |
# Try to fetch the food items from the correct category, ingredient, and nutrition preference
|
115 |
try:
|
116 |
-
# Access food items based on category, ingredient, and nutrition preference
|
117 |
food_items = FOOD_DATABASE[category][ingredient][nutrition]
|
118 |
if not food_items:
|
119 |
return f"Sorry, no {nutrition.replace('_', ' ').title()} dishes are available for {ingredient}."
|
@@ -133,15 +131,6 @@ def process_message(message, history):
|
|
133 |
# Gradio interface for the chatbot
|
134 |
def create_gradio_interface():
|
135 |
with gr.Blocks() as demo:
|
136 |
-
# Category button
|
137 |
-
category_btns = gr.Radio(choices=["Vegetarian", "Non-Vegetarian"], label="Select Category")
|
138 |
-
|
139 |
-
# Ingredient button
|
140 |
-
ingredient_btns = gr.Radio(choices=[], label="Select Ingredient") # Initially empty
|
141 |
-
|
142 |
-
# Nutrition button
|
143 |
-
nutrition_btns = gr.Radio(choices=NUTRITION_OPTIONS, label="Select Nutrition")
|
144 |
-
|
145 |
chatbot = gr.Chatbot([])
|
146 |
msg = gr.Textbox(show_label=False, placeholder="Enter text and press enter")
|
147 |
clear = gr.Button("Clear")
|
@@ -157,17 +146,6 @@ def create_gradio_interface():
|
|
157 |
history[-1][1] = bot_message
|
158 |
return history
|
159 |
|
160 |
-
# Handle category selection and dynamically update ingredient choices
|
161 |
-
category_btns.change(
|
162 |
-
lambda category: ingredient_btns.update(choices=VEG_INGREDIENTS if "vegetarian" in category.lower() else NONVEG_TYPES),
|
163 |
-
category_btns,
|
164 |
-
ingredient_btns
|
165 |
-
)
|
166 |
-
|
167 |
-
# Handle ingredient selection and pass to the next steps
|
168 |
-
ingredient_btns.change(lambda ingredient: process_message(ingredient, []), ingredient_btns, chatbot)
|
169 |
-
nutrition_btns.change(lambda nutrition: process_message(nutrition, []), nutrition_btns, chatbot)
|
170 |
-
|
171 |
msg.submit(user, [msg, chatbot], [msg, chatbot]).then(bot, chatbot, chatbot)
|
172 |
clear.click(lambda: None, None, chatbot)
|
173 |
|
|
|
87 |
# Step 3: Ingredient selection
|
88 |
elif chat_state.step == "ingredient":
|
89 |
chat_state.ingredient = message.lower().strip() # Ensure no extra spaces or case issues
|
90 |
+
# Determine if the ingredient belongs to Veg or Non-Veg category
|
91 |
category = "nonveg" if "non" in chat_state.category else "veg"
|
92 |
|
93 |
# Check if the ingredient exists in the food database
|
|
|
105 |
|
106 |
# Step 4: Nutrition preference
|
107 |
elif chat_state.step == "nutrition":
|
|
|
108 |
nutrition = message.lower().replace(" ", "").strip() # Remove spaces and make lowercase
|
109 |
chat_state.nutrition = nutrition
|
110 |
category = "nonveg" if "non" in chat_state.category else "veg"
|
|
|
112 |
|
113 |
# Try to fetch the food items from the correct category, ingredient, and nutrition preference
|
114 |
try:
|
|
|
115 |
food_items = FOOD_DATABASE[category][ingredient][nutrition]
|
116 |
if not food_items:
|
117 |
return f"Sorry, no {nutrition.replace('_', ' ').title()} dishes are available for {ingredient}."
|
|
|
131 |
# Gradio interface for the chatbot
|
132 |
def create_gradio_interface():
|
133 |
with gr.Blocks() as demo:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
134 |
chatbot = gr.Chatbot([])
|
135 |
msg = gr.Textbox(show_label=False, placeholder="Enter text and press enter")
|
136 |
clear = gr.Button("Clear")
|
|
|
146 |
history[-1][1] = bot_message
|
147 |
return history
|
148 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
149 |
msg.submit(user, [msg, chatbot], [msg, chatbot]).then(bot, chatbot, chatbot)
|
150 |
clear.click(lambda: None, None, chatbot)
|
151 |
|