Spaces:
Runtime error
Runtime error
Download app.py from abdelkader9090/HealthCheck: direct link, hf CLI and curl.
- Browser
- Download file 4.87 kB
-
https://huggingface.co/spaces/abdelkader9090/HealthCheck/resolve/main/app.py
- Command line
-
hf download hf://spaces/abdelkader9090/HealthCheck/app.py
-
curl -L -o app.py https://huggingface.co/spaces/abdelkader9090/HealthCheck/resolve/main/app.py
4.87 kB
| from smolagents import CodeAgent, InferenceClientModel, WebSearchTool, tool, Tool | |
| import gradio as gr | |
| # 🥗 Tool 1: حساب السعرات | |
| def calculate_calories(meal_description: str) -> str: | |
| """ | |
| Roughly estimate calories based on the meal description. | |
| Args: | |
| meal_description (str): Description of the food consumed. | |
| """ | |
| meal_description = meal_description.lower() | |
| calories = 0 | |
| if "egg" in meal_description: calories += 70 | |
| if "bread" in meal_description or "toast" in meal_description: calories += 80 | |
| if "chicken" in meal_description: calories += 250 | |
| if "rice" in meal_description or "pasta" in meal_description: calories += 200 | |
| if "cheese" in meal_description: calories += 100 | |
| if "salad" in meal_description: calories += 50 | |
| return f"Estimated total: around {calories} calories." | |
| # 💡 Tool 2: نصيحة غذائية | |
| def give_health_tip(meal_description: str) -> str: | |
| """ | |
| Give a quick health tip based on the meal type. | |
| Args: | |
| meal_description (str): Description of the food consumed. | |
| """ | |
| if "fried" in meal_description: | |
| return "Try grilling or baking instead of frying for a healthier option." | |
| elif "sugar" in meal_description or "dessert" in meal_description: | |
| return "Limit sugary foods to avoid energy crashes." | |
| elif "salad" in meal_description: | |
| return "Great choice! Add some protein to make it a complete meal." | |
| else: | |
| return "Balance your meal with some vegetables and water." | |
| # 🏋️♂️ Tool 3: تمرين اختياري | |
| def suggest_exercise(meal_description: str) -> str: | |
| """ | |
| Optional: Suggest a short exercise routine if user asks about workouts. | |
| Args: | |
| meal_description (str): Description of the food or time of day. | |
| """ | |
| meal_description = meal_description.lower() | |
| if "breakfast" in meal_description or "morning" in meal_description: | |
| return "Start your day with 15 minutes of stretching or a quick walk." | |
| elif "lunch" in meal_description: | |
| return "After lunch, take a 10-minute walk to help digestion." | |
| elif "dinner" in meal_description or "night" in meal_description: | |
| return "Try relaxing yoga before bed to improve sleep quality." | |
| else: | |
| return "If you want a light workout, a 30-minute walk is always great." | |
| # 🌿 Tool 4: الخطة الأسبوعية + نصايح النوم | |
| class HealthyLifestyleTool(Tool): | |
| name = "healthy_lifestyle_advisor" | |
| description = """ | |
| Suggests a healthy weekly meal plan, light exercises, and sleep tips. | |
| """ | |
| inputs = { | |
| "goal": { | |
| "type": "string", | |
| "description": "Health goal (e.g., 'weight loss', 'muscle gain', 'general health', 'better sleep').", | |
| } | |
| } | |
| output_type = "string" | |
| def forward(self, goal: str): | |
| goal = goal.lower() | |
| if "weight loss" in goal: | |
| return ( | |
| "🍎 Weight Loss Plan:\n" | |
| "- Meals: Oats with fruits, grilled chicken with veggies, and light dinner salads.\n" | |
| "- Exercise: 30 min brisk walking daily.\n" | |
| "- Sleep Tip: Aim for 7–8 hours, avoid screens before bed." | |
| ) | |
| elif "muscle gain" in goal: | |
| return ( | |
| "💪 Muscle Gain Plan:\n" | |
| "- Meals: Eggs, rice with chicken, protein shakes.\n" | |
| "- Exercise: Weight training 4x/week.\n" | |
| "- Sleep Tip: 8–9 hours for muscle recovery." | |
| ) | |
| elif "better sleep" in goal: | |
| return ( | |
| "🌙 Better Sleep Routine:\n" | |
| "- Meals: Avoid caffeine at night.\n" | |
| "- Exercise: Gentle yoga in the evening.\n" | |
| "- Sleep Tip: Fixed bedtime, dark room." | |
| ) | |
| else: | |
| return ( | |
| "🥗 General Health Tips:\n" | |
| "- Meals: Balanced diet with fruits and veggies.\n" | |
| "- Exercise: 30 min walk daily.\n" | |
| "- Sleep Tip: Regular sleep schedule." | |
| ) | |
| # 🧠 إنشاء الوكيل | |
| agent = CodeAgent( | |
| tools=[WebSearchTool(), calculate_calories, give_health_tip, suggest_exercise, HealthyLifestyleTool()], | |
| model=InferenceClientModel(), | |
| max_steps=10, | |
| verbosity_level=2 | |
| ) | |
| def health_assistant(prompt): | |
| response = agent.run(prompt) | |
| return response | |
| with gr.Blocks(theme=gr.themes.Soft()) as demo: | |
| gr.Markdown("## 🥗 HealthCheck Agent — Powered by smolagents") | |
| with gr.Row(): | |
| user_input = gr.Textbox(label="💬 Write your question (e.g., 'I had rice and chicken for lunch')") | |
| output = gr.Textbox(label="🧠 Agent's Answer") | |
| submit_btn = gr.Button("Ask Alfred 🧑⚕️") | |
| submit_btn.click(health_assistant, inputs=user_input, outputs=output) | |
| demo.launch() | |