Spaces:
Runtime error
Runtime error
import gradio as gr | |
import difflib | |
import os | |
# A simple mapping of prompt keywords to image file names | |
exercise_sets = { | |
"shoulder": "shoulder_mobility.png", | |
"neck": "neck_stretches.png", | |
"back": "back_mobility.png", | |
"full body": "full_body_mobility.png", | |
"warm up": "warmup_routine.png" | |
} | |
# Fuzzy matching prompt to known categories | |
def match_prompt_to_exercise(prompt): | |
keywords = list(exercise_sets.keys()) | |
closest = difflib.get_close_matches(prompt.lower(), keywords, n=1, cutoff=0.3) | |
if closest: | |
return exercise_sets[closest[0]] | |
else: | |
return None | |
# Main function | |
def get_exercise_set(prompt): | |
matched_file = match_prompt_to_exercise(prompt) | |
if matched_file and os.path.exists(f"exercise_sets/{matched_file}"): | |
return f"exercise_sets/{matched_file}", f"exercise_sets/{matched_file}" | |
else: | |
return None, "Sorry, no matching set found. Try: 'shoulder', 'neck', 'warm up'" | |
# Interface | |
gr.Interface( | |
fn=get_exercise_set, | |
inputs=gr.Textbox(label="Enter your goal (e.g., 'Shoulder mobility exercises')"), | |
outputs=[gr.Image(label="Generated Exercise Sheet"), gr.File(label="Download Image")], | |
title="π§ AI Exercise Sheet Generator", | |
description="Type a goal like 'Neck stretches' or 'Warm-up routine' to get an illustrated exercise set.", | |
examples=[ | |
["Shoulder mobility exercises"], | |
["Neck stretches"], | |
["Warm-up before boxing"], | |
["Full body mobility"] | |
] | |
).launch() | |