from transformers import pipeline import gradio as gr def generate_recommendations(party_on_weekends=None, flavor_preference=None, texture_dislike=None, price_range=None): # Define the list of ingredients ingredients = ["oranges", "apples", "pears", "grapes", "watermelon", "lemon", "lime"] # Apply the rules based on user answers allowed_fruits = ingredients.copy() if party_on_weekends == "yes": allowed_fruits = list(set(allowed_fruits) & set(["apples", "pears", "grapes", "watermelon"])) if flavor_preference == "cider": allowed_fruits = list(set(allowed_fruits) & set(["apples", "oranges", "lemon", "lime"])) elif flavor_preference == "sweet": allowed_fruits = list(set(allowed_fruits) & set(["watermelon", "oranges"])) elif flavor_preference == "waterlike": allowed_fruits = list(set(allowed_fruits) & set(["watermelon"])) if "grapes" in allowed_fruits: allowed_fruits.remove("watermelon") if texture_dislike == "smooth": if "pears" in allowed_fruits: allowed_fruits.remove("pears") elif texture_dislike == "slimy": slimy_fruits = ["watermelon", "lime", "grapes"] allowed_fruits = list(set(allowed_fruits) - set(slimy_fruits)) elif texture_dislike == "waterlike": if "watermelon" in allowed_fruits: allowed_fruits.remove("watermelon") if price_range is not None: if price_range < 3: if "lime" in allowed_fruits: allowed_fruits.remove("lime") if "watermelon" in allowed_fruits: allowed_fruits.remove("watermelon") elif 4 < price_range < 7: if "pears" in allowed_fruits: allowed_fruits.remove("pears") if "apples" in allowed_fruits: allowed_fruits.remove("apples") return allowed_fruits def recommend_fruits(party_answer="", flavor_answer="", texture_answer="", price_answer=None): # Combine the answers dynamically combined_answers = { "Do you go out to party on weekends? (yes or no)": party_answer, "What flavors do you like? (cider, sweet, waterlike)": flavor_answer, "What texture do you dislike? (smooth, slimy, waterlike)": texture_answer, "What price range will you buy a drink for? ($1-$10)": price_answer } # Generate recommendations based on combined answers recommendations = generate_recommendations(**combined_answers) return "Recommended fruits: " + str(recommendations) def clear_output(): # You can customize the behavior of clearing the output if needed return "" iface = gr.Interface(fn=recommend_fruits, inputs=["text", "text", "text", "number"], outputs="text", live=True ) # Adjust the refresh rate here (in seconds) # Add a clear button to reset the output iface.launch(share=True, debug=True)