| | from groq import Groq |
| | import os |
| | from dotenv import load_dotenv |
| |
|
| | |
| | load_dotenv() |
| | GROQ_API_KEY = os.getenv("GROQ_API_KEY") |
| |
|
| | |
| | client = Groq(api_key=GROQ_API_KEY) |
| |
|
| | def generate_fitness_response(user_input): |
| | """ |
| | Generate a response from the LLaMA model based on user input. |
| | """ |
| | system_prompt = """ |
| | You are a Health Fitness Assistant. Your role is to provide personalized fitness advice, including: |
| | - Diet plans (e.g., vegetarian, vegan, keto, etc.) |
| | - Exercise routines (e.g., gym, home workouts, yoga, etc.) |
| | - Weight loss strategies |
| | - Portion control guidance |
| | - Sleep optimization tips |
| | - Expert fitness tips and tricks |
| | |
| | Always respond in a friendly, professional, and informative manner. Tailor your advice to the user's specific needs and goals. |
| | """ |
| |
|
| | completion = client.chat.completions.create( |
| | model="deepseek-r1-distill-llama-70b", |
| | messages=[ |
| | {"role": "system", "content": system_prompt}, |
| | {"role": "user", "content": user_input}, |
| | ], |
| | temperature=0.6, |
| | max_tokens=4096, |
| | top_p=0.95, |
| | stream=True, |
| | stop=None, |
| | ) |
| |
|
| | response = "" |
| | for chunk in completion: |
| | response += chunk.choices[0].delta.content or "" |
| | return response |
| | import streamlit as st |
| |
|
| | |
| | st.title("Health Fitness Assistant") |
| |
|
| | |
| | if "messages" not in st.session_state: |
| | st.session_state.messages = [] |
| |
|
| | |
| | for message in st.session_state.messages: |
| | with st.chat_message(message["role"]): |
| | st.markdown(message["content"]) |
| |
|
| | |
| | if prompt := st.chat_input("Ask me anything about fitness..."): |
| | |
| | st.session_state.messages.append({"role": "user", "content": prompt}) |
| | with st.chat_message("user"): |
| | st.markdown(prompt) |
| |
|
| | |
| | with st.chat_message("assistant"): |
| | response = generate_fitness_response(prompt) |
| | st.markdown(response) |
| |
|
| | |
| | st.session_state.messages.append({"role": "assistant", "content": response}) |