Spaces:
Sleeping
Sleeping
# app.py | |
import gradio as gr | |
from pipeline import process_answers_pipeline # Import the centralized pipeline function | |
from questions import questions # Import questions list | |
def process_answers( | |
sleep, | |
exercise, | |
mood, | |
stress_level, | |
wellness_goals, | |
dietary_restrictions, | |
eating_habits, | |
relaxation_time, | |
health_issues, | |
stress_management, | |
daily_routine, | |
bedtime_routine, | |
water_intake, | |
mindfulness_frequency, | |
mindset, | |
personal_growth_reflection, | |
break_frequency, | |
relaxation_activities, | |
self_care_time, | |
outdoor_activity_frequency, | |
gratitude_practice, | |
home_cooked_meals, | |
uninterrupted_sleep, | |
gratitude_feelings, | |
connection_rating, | |
activity_tracking, | |
strength_training, | |
energy_rating | |
): | |
# Explicit mapping of responses to corresponding questions | |
responses = { | |
questions[0]: sleep, | |
questions[1]: exercise, | |
questions[2]: mood, | |
questions[3]: stress_level, | |
questions[4]: wellness_goals, | |
questions[5]: dietary_restrictions, | |
questions[6]: eating_habits, | |
questions[7]: relaxation_time, | |
questions[8]: health_issues, | |
questions[9]: stress_management, | |
questions[10]: daily_routine, | |
questions[11]: bedtime_routine, | |
questions[12]: water_intake, | |
questions[13]: mindfulness_frequency, | |
questions[14]: mindset, | |
questions[15]: personal_growth_reflection, | |
questions[16]: break_frequency, | |
questions[17]: relaxation_activities, | |
questions[18]: self_care_time, | |
questions[19]: outdoor_activity_frequency, | |
questions[20]: gratitude_practice, | |
questions[21]: home_cooked_meals, | |
questions[22]: uninterrupted_sleep, | |
questions[23]: gratitude_feelings, | |
questions[24]: connection_rating, | |
questions[25]: activity_tracking, | |
questions[26]: strength_training, | |
questions[27]: energy_rating | |
} | |
# Process responses using the centralized pipeline | |
results = process_answers_pipeline(responses) | |
# Format outputs using results from the pipeline | |
wellness_report = f"**Wellness Report**\n------------------\n{results['report'].strip()}" | |
identified_problems = ( | |
"**Identified Problems**\n" | |
"-----------------------\n" | |
f"Sleep Problem: {results['problems'].get('sleep_problem', 'N/A')}%\n" | |
f"Exercise Problem: {results['problems'].get('exercise_problem', 'N/A')}%\n" | |
f"Stress Problem: {results['problems'].get('stress_problem', 'N/A')}%\n" | |
f"Diet Problem: {results['problems'].get('diet_problem', 'N/A')}%" | |
) | |
recommendations = ( | |
"**Recommendations**\n" | |
"--------------------\n" | |
f"{results['recommendation'].strip()}" | |
) | |
summary_shown = ( | |
"**Summary (SHOWN TO USER)**\n" | |
"-----------------\n" | |
f"{results['final_summary'].strip()}" | |
) | |
final_summary_video = ( | |
"**Final Summary (FOR VIDEO CREATION)**\n" | |
"-----------------\n" | |
f"{results['shortened_summary'].strip()}" | |
) | |
return wellness_report, identified_problems, recommendations, summary_shown, final_summary_video | |
iface = gr.Interface( | |
fn=process_answers, | |
inputs=[gr.Textbox(label=q) for q in questions], | |
outputs=[ | |
gr.Markdown(label="Wellness Report"), | |
gr.Markdown(label="Identified Problems"), | |
gr.Markdown(label="Recommendations"), | |
gr.Markdown(label="Summary (SHOWN TO USER)"), | |
gr.Markdown(label="Final Summary (FOR VIDEO CREATION)") | |
], | |
title="Wellness Report Generator", | |
description="Answer the questions to generate a wellness report, problem analysis, recommendations, and a final summary." | |
) | |
iface.launch() | |