File size: 1,622 Bytes
ad8135e
 
 
 
ff4db0f
 
ad8135e
 
ff4db0f
 
 
 
 
533c8d9
 
ff4db0f
 
 
 
 
 
 
 
 
 
 
ad8135e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
37
38
39
40
41
42
43
44
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()