import requests
import pandas as pd
import openai
# Replace with your API keys
SPOONACULAR_API_KEY = "your_spoonacular_api_key"
OPENAI_API_KEY = "your_openai_api_key"
openai.api_key = OPENAI_API_KEY
# -----------------------------------
# 1. Get recipes from Spoonacular API
# -----------------------------------
def get_recipes_from_spoonacular(ingredients, number=5):
url = f"https://api.spoonacular.com/recipes/findByIngredients"
params = {
"ingredients": ingredients,
"number": number,
"apiKey": SPOONACULAR_API_KEY
}
response = requests.get(url, params=params)
if response.status_code == 200:
return response.json()
else:
print("❌ Error:", response.json())
return []
# -----------------------------------
# 2. Get detailed nutritional info
# -----------------------------------
def get_recipe_nutrition(recipe_id):
url = f"https://api.spoonacular.com/recipes/{recipe_id}/nutritionWidget.json"
params = {"apiKey": SPOONACULAR_API_KEY}
response = requests.get(url, params=params)
if response.status_code == 200:
return response.json()
return {}
# -----------------------------------
# 3. Use OpenAI to generate recipe idea
# -----------------------------------
def generate_ai_recipe(ingredients):
prompt = f"Suggest a creative recipe using these ingredients: {ingredients}. Include steps and a short description."
response = openai.Completion.create(
engine="text-davinci-003",
prompt=prompt,
max_tokens=300,
temperature=0.7
)
return response.choices[0].text.strip()
# -----------------------------------
# Example Run
# -----------------------------------
if __name__ == "__main__":
user_ingredients = input("Enter ingredients (comma separated): ")
print("\n🍲 Fetching recipe ideas from Spoonacular...\n")
recipes = get_recipes_from_spoonacular(user_ingredients)
recipe_list = []
for r in recipes:
nutrition = get_recipe_nutrition(r["id"])
recipe_list.append({
"Title": r["title"],
"Used Ingredients": len(r["usedIngredients"]),
"Missed Ingredients": len(r["missedIngredients"]),
"Calories": nutrition.get("calories", "N/A"),
"Carbs": nutrition.get("carbs", "N/A"),
"Protein": nutrition.get("protein", "N/A"),
"Fat": nutrition.get("fat", "N/A")
})
df = pd.DataFrame(recipe_list)
print(df)
print("\n🤖 AI Suggested Recipe:\n")
ai_recipe = generate_ai_recipe(user_ingredients)
print(ai_recipe)