Fitness_bot / main.py
Nachiketkapure's picture
Upload 3 files
761b70b verified
raw
history blame contribute delete
No virus
1.79 kB
import streamlit as st
from transformers import pipeline
from youtube_search import YoutubeSearch
# Initialize the Hugging Face pipeline for text generation, using GPT-2 for example
generator = pipeline('text-generation', model='gpt2')
# Function to generate response using Hugging Face pipeline
def generate_response(prompt):
response = generator(prompt, max_length=150, num_return_sequences=1, truncation=True)
return response[0]['generated_text'].strip()
# Function to perform YouTube search and retrieve video links
def search_videos(query, max_results=5):
try:
results = YoutubeSearch(query, max_results=max_results).to_dict()
video_links = [f"https://www.youtube.com/watch?v={result['id']}" for result in results]
return video_links
except Exception as e:
st.error("An error occurred while searching for videos: " + str(e))
return []
# Streamlit App Layout
st.title("FitPal: Interactive Fitness Coach")
# Input fields
client_info = st.text_area("Talk with Fit", help="Enter your message here")
user_message = st.text_input("Client Info", help="Enter your height, age, weight, etc. for better personalized results")
video_query = st.text_input("Search for Video", help="Want to look up a video that explains more?")
# Button to generate response
if st.button("Submit"):
if user_message:
prompt = user_message + "\nClient Info: " + client_info
chatbot_output = generate_response(prompt)
st.write("Chatbot Response:")
st.write(chatbot_output)
if video_query:
video_links = search_videos(video_query)
if video_links:
st.write("Video Links:")
for link in video_links:
st.markdown(f"[{link}]({link})", unsafe_allow_html=True)