Spaces:
Sleeping
Sleeping
File size: 2,494 Bytes
de72b93 de6cf94 5c64d1a de6cf94 5c64d1a 41bfd24 2cdf1bc d7f3569 2cdf1bc d7f3569 2cdf1bc d7f3569 2cdf1bc d7f3569 2cdf1bc de72b93 d7f3569 4c2616b d7f3569 2cdf1bc b0cf6ac d7f3569 5c64d1a d7f3569 5c64d1a b0cf6ac 4c2616b 5c64d1a 4c2616b 5c64d1a b0cf6ac 5c64d1a b0cf6ac d7f3569 4c2616b b0cf6ac 0036872 4c2616b 0036872 4c2616b 0036872 4c2616b c922ff3 0036872 b0cf6ac de6cf94 0036872 5c64d1a 0881787 | 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 83 84 85 86 | import gradio as gr
from groq import Groq
import os
client = Groq(api_key=os.environ.get("GROQ_API_KEY"))
SYSTEM_PROMPT = """You are a professional exercise advisor and fitness coach.
Your goal is to help users improve their physical fitness safely.
Provide beginner-friendly workout advice, warm-up tips, and recovery guidance.
Avoid medical diagnosis and always encourage safe exercise habits."""
EXAMPLES = """
User: I am a beginner. How should I start exercising?
Assistant: Start with light exercises such as walking, stretching, and bodyweight movements.
User: How many days per week should I work out?
Assistant: Beginners should exercise 3–4 days per week.
User: What should I do before a workout?
Assistant: Always begin with a warm-up to prevent injuries.
"""
def respond(message, history, model, temperature, max_tokens):
messages = [{"role": "system", "content": SYSTEM_PROMPT + EXAMPLES}]
for h in history:
messages.append({"role": "user", "content": h[0]})
if h[1]:
messages.append({"role": "assistant", "content": h[1]})
messages.append({"role": "user", "content": message})
try:
response = client.chat.completions.create(
model=model,
messages=messages,
temperature=temperature,
max_completion_tokens=max_tokens,
)
return response.choices[0].message.content
except Exception as e:
return f"Error: {str(e)}"
# ChatInterface with additional inputs for parameters
demo = gr.ChatInterface(
fn=respond,
title="🏋️ Exercise Advisor AI",
description="Get safe and beginner-friendly workout advice",
additional_inputs=[
gr.Dropdown(
choices=[
"llama-3.3-70b-versatile",
"llama-3.1-8b-instant",
],
value="llama-3.3-70b-versatile",
label="Model",
),
gr.Slider(
minimum=0,
maximum=2,
value=0.7,
step=0.1,
label="Temperature",
),
gr.Slider(
minimum=256,
maximum=4096,
value=1024,
step=256,
label="Max Tokens",
),
],
examples=[
["I am a beginner. How should I start exercising?"],
["How many days per week should I work out?"],
["What is the best warm-up before training?"],
],
theme="soft",
)
if __name__ == "__main__":
demo.launch() |