# 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()}" # Updated Identified Problems section to display eight new themes identified_problems = ( "**Identified Problems**\n" "-----------------------\n" f"Stress Management: {results['problems'].get('stress_management', 'N/A')}%\n" f"Low Therapy: {results['problems'].get('low_therapy', 'N/A')}%\n" f"Balanced Weight: {results['problems'].get('balanced_weight', 'N/A')}%\n" f"Restless Night: {results['problems'].get('restless_night', 'N/A')}%\n" f"Lack of Motivation: {results['problems'].get('lack_of_motivation', 'N/A')}%\n" f"Gut Health: {results['problems'].get('gut_health', 'N/A')}%\n" f"Anxiety: {results['problems'].get('anxiety', 'N/A')}%\n" f"Burnout: {results['problems'].get('burnout', '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()