TextGen / workout_plan_generation.py
abdullah10's picture
Upload 17 files
dfc4131
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain
from langchain.llms import OpenAI
from load_model import call_palm
from calling_apis import google_api_key, openai_api_key
def workout_plan_gen(my_goals:str, fitness_level:str, days:int, hours:int, helth_cosnd:str, routine:str, language='En', model_name='Google Palm 2', creativity='Original')->str:
"""
Generates a Gym Workout Plan based on user's goal, fiteness_level, days and hours avaliable, his routine and health considiration.
Parameters:
my_goals (str): Trainee Goal from the Gym Workout.
fitness_level (str): Level of the trainee Fitness.
days (int): Avaliable Days.
hours (int): Avaliable Hours.
helth_cosnd (str): Health Considiration.
routine (str): Trainee Routine.
language (str): the language of the generated content (optional, default value is 'EN').
creativity (str): Optional Parameter -> Controling the randomness of the model. Default value is Original
model_name (str): Optional Parameter -> select the LLM model. Default Value is Google Palm 2
Returns:
workout_plan (str): Generated Workout Plan.
"""
temp = 0
if creativity == 'Original':
temp = 0
elif creativity == 'Balanced':
temp = 0.25
elif creativity == 'Creative':
temp = 0.5
elif creativity == 'Spirited':
temp = 0.75
elif creativity == 'Visionary':
temp = 1
if model_name == 'Google Palm 2':
llm = call_palm(google_api_key, temperature=temp)
elif model_name == 'GPT-3.5':
llm = OpenAI(model_name='gpt-3.5-turbo', openai_api_key=openai_api_key, temperature=temp)
elif model_name == 'GPT-4':
llm = OpenAI(model_name='gpt-4', openai_api_key=openai_api_key, temperature=temp)
if language == 'En':
workout_plan_prompt = f"""Generate a workout plan with diversity and creative exercises.
Please note the following details:
* My Goals: I'm looking to {my_goals}
* Fitness Level: {fitness_level}.
* Available Equipment: I have access to a gym with various equipment.
* Time Commitment: I'm dedicated to working out {days} days a week, and I have {hours} hours a day I can spend during each session.
* Health Considerations: I'm in the {helth_cosnd}.
* Preferred Routine: I like to follow {routine} routine.\nWorkout Plan:"""
workout_plan_promptTemp = PromptTemplate(
input_variables=["text_input"],
template="You are a Professional Fitness Trainer:\n{text_input}")
elif language == 'Ar':
workout_plan_prompt = f"""قم بإنشاء خطة تمارين رياضية متنوعة ومبتكرة.
يرجى مراعاة التفاصيل التالية:
* أهدافي: أنا أسعى لـ {my_goals}.
* مستوى اللياقة: {fitness_level}.
* المعدات المتاحة: لدي الوصول إلى صالة ألعاب رياضية بها معدات متنوعة.
* الالتزام الزمني: أنا ملتزم بممارسة التمارين {days} أيام في الأسبوع، ولدي {hours} ساعة يوميًا يمكنني قضائها خلال كل جلسة.
* اعتبارات الصحة: أنا في حالة {helth_cosnd}.
* الروتين المفضل: أحب اتباع الروتين {routine}.\nخطة التمارين:"""
workout_plan_promptTemp = PromptTemplate(
input_variables=["text_input"],
template="أنت مدرب لياقة مهني:\n{text_input}")
workout_plan_extraction_chain = LLMChain(llm=llm, prompt=workout_plan_promptTemp)
workout_plan = workout_plan_extraction_chain.run(workout_plan_prompt)
return workout_plan