Spaces:
Sleeping
Sleeping
# app.py | |
import gradio as gr | |
from chains import questions | |
from chain_reports import generate_short_report_for_session | |
from chain_problems import analyze_problems_with_chain | |
from chain_recommendations import generate_recommendations | |
from chain_summary import generate_final_summary, shorten_summary | |
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 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 | |
} | |
report = generate_short_report_for_session(responses) | |
problems = analyze_problems_with_chain(responses, report) | |
recommendation = generate_recommendations(problems) | |
final_summary = generate_final_summary(report, problems, recommendation) | |
shortened_summary = shorten_summary(final_summary) | |
wellness_report = f"**Wellness Report**\n------------------\n{report.strip()}" | |
identified_problems = ( | |
"**Identified Problems**\n" | |
"-----------------------\n" | |
f"Sleep Problem: {problems.get('sleep_problem', 'N/A')}%\n" | |
f"Exercise Problem: {problems.get('exercise_problem', 'N/A')}%\n" | |
f"Stress Problem: {problems.get('stress_problem', 'N/A')}%\n" | |
f"Diet Problem: {problems.get('diet_problem', 'N/A')}%" | |
) | |
recommendations = ( | |
"**Recommendations**\n" | |
"--------------------\n" | |
f"{recommendation.strip()}" | |
) | |
summary_shown = ( | |
"**Summary (SHOWN TO USER)**\n" | |
"-----------------\n" | |
f"{final_summary.strip()}" | |
) | |
final_summary_video = ( | |
"**Final Summary (FOR VIDEO CREATION)**\n" | |
"-----------------\n" | |
f"{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() | |