import gradio as gr from transformers import pipeline # Load a model from Hugging Face for recipe generation model = pipeline("text-generation", model="flax-community/t5-recipe-generation") # Recipe generation function def suggest_recipes(ingredients): prompt = ( f"You are an expert in cooking. Please suggest 3 recipes using the following " f"ingredients: {ingredients}. Provide a title for each recipe, include " f"preparation time, and list step-by-step directions." ) response = model(prompt) # , max_length=512, num_return_sequences=1) # Parse the generated text to create structured recipes generated_text = response[0]['generated_text'] recipes = generated_text.split("Recipe ") structured_recipes = [] for i, recipe in enumerate(recipes): if recipe.strip(): # Ensure non-empty recipe structured_recipes.append(f"Recipe {i+1}:\n{recipe.strip()}") return "\n\n".join(structured_recipes) # Gradio interface with gr.Blocks() as app: gr.Markdown("# Recipe Suggestion App") gr.Markdown("Provide the ingredients you have, and this app will suggest recipes along with preparation times!") with gr.Row(): ingredients_input = gr.Textbox(label="Enter Ingredients (comma-separated):", placeholder="e.g., eggs, milk, flour") recipe_output = gr.Textbox(label="Suggested Recipes:", lines=15, interactive=False) generate_button = gr.Button("Get Recipes") generate_button.click(suggest_recipes, inputs=ingredients_input, outputs=recipe_output) # Launch the app app.launch()