Spaces:
Runtime error
Runtime error
File size: 1,101 Bytes
fef789d b51e972 fef789d 9544381 fef789d 56cba7c fef789d b51e972 56cba7c fef789d |
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 |
import random
import time
from langchain.schema.messages import HumanMessage, SystemMessage
def retrieve_knowledge(query, vectorstore, k=10, randomize=True):
knowledge = [d.page_content.strip() for d in vectorstore.similarity_search(query, k=k)]
if randomize:
knowledge = random.sample(knowledge, k)
knowledge = "\n\n\n".join(knowledge)
return knowledge
def generate_workout(system_prompt, query, knowledge, llm):
messages = [
SystemMessage(content=system_prompt.format(workout_context=knowledge)),
HumanMessage(content=query)
]
response = llm.invoke(messages).content.strip()
return response
def run(gender, muscle_group, equipment, level, duration, vectorstore, system_prompt, llm, k=5, randomize=True):
query = f"{duration}-minute {muscle_group} workout for {gender} {level} level {equipment}"
knowledge = retrieve_knowledge(query, vectorstore, k, randomize)
response = generate_workout(system_prompt, query, knowledge, llm)
for i in range(len(response)):
time.sleep(0.01)
yield response[:i+1] |