Autochef.AI / app.py
Hussnainkha's picture
Update app.py
49af185 verified
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.")