File size: 2,421 Bytes
fd07ca2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import numpy as np
import pandas as pd
import re
import json
import openai
openai.api_key = st.secrets["open_ai_key"]

user_direction = st.text_area(
    "Let's get cooking! What are you in the mood for?",
    value="quick snack, asian style bowl with either noodles or rice, chocolate indulgence, etc.",
    )

serving_size = st.number_input(
    "How many people are you cooking for?",
    min_value=1,
    max_value=100,
    value=2,
    step=1
)

difficulty = st.radio(
    "Choose a difficulty level for your recipe.",
    ["Beginner", "Home Chef", "Professional"],
    captions = [
        "Easy recipes with straightforward instructions. Ideal for first-timers or those seeking quick and simple cooking.",
        "Recipes with some intricate steps that invite a little challenge. Perfect for regular cooks wanting to expand their repertoire with new ingredients and techniques.", 
        "Complex recipes that demand a high level of skill and precision. Suited for seasoned cooks aspiring to professional-level sophistication and creativity."
    ])

user_inputs = {
    "user_direction" : user_direction,
    "exclusions": "gluten, dairy",
    "serving_size": 4,
    "difficulty": "easy"
}

# define GPT agents
def generate_recipe(text):
    context = """Provide me a recipe based on the below user input. The recipe output should contain the following components:
    - recipe name
    - serving size
    - time to make
    - ingredients list
    - instructions
    Output this in a valid JSON object with the following properties:
    recipe_name (string): the name of the recipe
    recipe_serving_size (string): the serving size of the recipe (example: "Serving Size: 4 people")
    recipe_time (string): the amount of time required to make the recipe (example: "Time to Make: 60 minutes (Preparation: 20 minutes, Baking: 40 minutes)")
    recipe_ingredients (string): python list of ingredients required to make the recipe
    recipe_instructions (string): python list of instructions to make the recipe
    """
    messages = [
        {"role": "system", "content": context},
        {"role": "user", "content": text}
        ]
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=messages,
        temperature=0.2
    )
    response_message = response["choices"][0]["message"]
    return json.loads(response_message["content"])

#generate_recipe(str(user_inputs))