File size: 2,582 Bytes
2ea2a1a
 
1c1c01f
 
2ea2a1a
 
 
 
 
 
 
 
 
 
 
 
 
1c1c01f
2ea2a1a
 
 
 
 
 
 
 
 
 
 
 
 
1c1c01f
 
 
 
 
2ea2a1a
 
 
 
1c1c01f
 
 
 
2ea2a1a
1c1c01f
2ea2a1a
 
 
1c1c01f
2ea2a1a
1c1c01f
2ea2a1a
 
 
1c1c01f
2ea2a1a
1c1c01f
2ea2a1a
 
 
1c1c01f
2ea2a1a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# 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: str,
    exercise: str,
    stress: str,
    goals: str,
    diet: str,
    eating: str,
    relaxation: str,
    health_issues: str,
    manage_stress: str,
    routine: str
):
    # Map user inputs to corresponding questions
    responses = {
        questions[0]: sleep,
        questions[1]: exercise,
        questions[2]: stress,
        questions[3]: goals,
        questions[4]: diet,
        questions[5]: eating,
        questions[6]: relaxation,
        questions[7]: health_issues,
        questions[8]: manage_stress,
        questions[9]: routine
    }

    # Use the centralized pipeline to process all responses
    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()