from groq import Groq import os from dotenv import load_dotenv # Load API key from .env file load_dotenv() GROQ_API_KEY = os.getenv("GROQ_API_KEY") # Initialize Groq client 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 # Title of the chatbot st.title("Health Fitness Assistant") # Initialize chat history if "messages" not in st.session_state: st.session_state.messages = [] # Display chat messages for message in st.session_state.messages: with st.chat_message(message["role"]): st.markdown(message["content"]) # User input if prompt := st.chat_input("Ask me anything about fitness..."): # Add user message to chat history st.session_state.messages.append({"role": "user", "content": prompt}) with st.chat_message("user"): st.markdown(prompt) # Generate assistant response with st.chat_message("assistant"): response = generate_fitness_response(prompt) st.markdown(response) # Add assistant response to chat history st.session_state.messages.append({"role": "assistant", "content": response})