Spaces:
Runtime error
Runtime error
File size: 2,634 Bytes
069d75c 2e68f66 069d75c 2e68f66 |
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 |
import os
from groq import Groq
import streamlit as st
from dotenv import load_dotenv
# Load API key from .env file
load_dotenv()
# Retrieve the API key from environment variables
api_key = os.getenv("GROQ_API_KEY")
# Ensure the API key is loaded correctly
if not api_key:
st.error("API key is missing. Please set the GROQ_API_KEY in the .env file.")
else:
# Initialize the Groq client
client = Groq(api_key=api_key)
# Define the health diet topics for the chatbot
diet_topics = [
"weight loss plan", "balanced diet", "high-protein diet", "low-carb diet",
"vegetarian diet", "keto diet", "intermittent fasting", "healthy meal plans",
"heart-healthy diet", "diabetes-friendly diet", "meal prepping", "nutrition for muscle gain",
"detox diet", "vitamin-rich foods", "hydration tips", "healthy snacks",
"immune-boosting foods", "foods for better digestion", "foods for glowing skin",
"healthy breakfasts", "meal plans for athletes", "diet for weight maintenance",
"mindful eating", "portion control", "anti-inflammatory foods", "meal planning for busy people"
]
# Function to fetch chatbot completion from Groq API
def get_response(query):
completion = client.chat.completions.create(
model="llama-3.3-70b-versatile",
messages=[{"role": "user", "content": query}],
temperature=0.7,
max_completion_tokens=1024,
top_p=1,
)
response = completion.choices[0].message.content
return response
def main():
st.title("Health Diet Plan Chatbot")
# Let the user choose a diet plan or type a custom query
topic = st.selectbox("Choose a diet plan topic", diet_topics)
user_input = st.text_area("Or ask a diet-related question:", "")
# If the user provides a query, we use that
query = user_input if user_input else f"Tell me about {topic} for a healthy body"
# Create a submit button
submit_button = st.button("Submit")
# Call the Groq API to get the response if the button is clicked
if submit_button and query:
response = get_response(query)
# Display the response
st.write("### Response:")
st.write(response)
# Handle unrelated queries
if user_input and not any(topic in user_input.lower() for topic in diet_topics):
st.write("Sorry, I can only answer diet-related questions.")
# Ensure the main function is called when the script is run
if __name__ == "__main__":
main()
|