Spaces:
Runtime error
Runtime error
| 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] |