import os import openai import streamlit as st from openai import OpenAI # Initialize OpenAI openai.api_key = os.environ['OPENAI_API_KEY'] client = OpenAI( api_key=os.environ['OPENAI_API_KEY'] ) # Function to generate the recipe and detailed instructions def create_dish_prompt(list_of_ingredients, category): prompt = f"Make a {category} dish with the following ingredients: " + ', '.join( list_of_ingredients) + ".\nWrite down the title, detailed recipe, and a description of the image you want to generate.\n" return prompt # Function to generate the image def generate_dalle_image(recipe_title): response = client.images.generate( model="dall-e-3", prompt=recipe_title, size="1024x1024", quality="standard", n=1, ) url = response.data[0].url if response.data else None return url # Initialize Streamlit st.image("logo 3.jpg") st.title("AutoChef.AI") # Create a text input box for users to input ingredients list_of_ingredients = st.text_input("Enter your ingredients (comma-separated):", "") # Create a text input for users to input the category of food category = st.text_input("Enter the category of food such as fried, baked, grilled, etc:") # Generate Recipe button at the bottom if st.button("Generate Recipe"): # Check if the user has entered ingredients if list_of_ingredients: # Convert the input string into a list of ingredients list_of_ingredients = [item.strip() for item in list_of_ingredients.split(',')] # Call your existing functions to generate the recipe and image recipe = create_dish_prompt(list_of_ingredients, category) completion = client.chat.completions.create( messages=[ { "role": "user", "content": recipe, } ], model="gpt-3.5-turbo", ) content = completion.choices[0].message.content split_content = content.split('\n', 1) recipe_title = split_content[0].strip() detailed_recipe = split_content[1].strip() url = generate_dalle_image(recipe_title) # Display the recipe title and detailed recipe st.title(recipe_title) st.subheader("A comprehensive culinary guide outlining the step-by-step procedure for preparing a dish.") st.write(detailed_recipe) # Display the image if a URL exists if url: st.image(url) else: st.write("No image URL generated.")