Spaces:
Sleeping
Sleeping
File size: 5,912 Bytes
a2f1a4d 9b35d16 71978cc 3f01465 71978cc 4be2e38 c32c1af 4be2e38 84a5b18 71978cc 84a5b18 9b35d16 84a5b18 71978cc 84a5b18 a2f1a4d 4be2e38 c32c1af 4be2e38 a2f1a4d 84a5b18 71978cc a2f1a4d 5119cc5 a2f1a4d 5119cc5 a2f1a4d 5119cc5 a2f1a4d 5119cc5 a2f1a4d 84a5b18 5119cc5 a2f1a4d 84a5b18 a2f1a4d 3f01465 4be2e38 fba6dac |
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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
from flask import Flask, render_template, send_from_directory, request, jsonify
from simple_salesforce import Salesforce
from dotenv import load_dotenv
import os
import json
import requests
# Load environment variables from .env file
load_dotenv()
app = Flask(__name__, template_folder='templates', static_folder='static')
# Function to get Salesforce connection
def get_salesforce_connection():
try:
sf = Salesforce(
username=os.getenv('SFDC_USERNAME'),
password=os.getenv('SFDC_PASSWORD'),
security_token=os.getenv('SFDC_SECURITY_TOKEN'),
domain=os.getenv('SFDC_DOMAIN', 'login')
)
return sf
except Exception as e:
print(f"Error connecting to Salesforce: {e}")
return None
# Initialize Salesforce connection
sf = get_salesforce_connection()
@app.route('/')
def index():
return render_template('index.html')
@app.route('/static/<path:filename>')
def serve_static(filename):
return send_from_directory('static', filename)
@app.route('/get_ingredients', methods=['POST'])
def get_ingredients():
global sf
if not sf:
sf = get_salesforce_connection()
if not sf:
return jsonify({"error": "Failed to connect to Salesforce"}), 500
dietary_preference = request.json.get('dietary_preference', '').lower()
# SOQL query based on dietary preference
if dietary_preference == 'veg':
soql = "SELECT Name, Image_URL__c FROM Sector_Detail__c WHERE Category__c = 'Veg' LIMIT 200"
elif dietary_preference == 'non-vegetarian':
soql = "SELECT Name, Image_URL__c FROM Sector_Detail__c WHERE Category__c = 'Non-Veg' LIMIT 200"
else:
soql = "SELECT Name, Image_URL__c FROM Sector_Detail__c LIMIT 200"
try:
result = sf.query(soql)
ingredients = [
{"name": record['Name'], "image_url": record.get('Image_URL__c', '')}
for record in result['records'] if 'Name' in record
]
return jsonify({"ingredients": ingredients})
except Exception as e:
return jsonify({"error": f"Failed to fetch ingredients: {str(e)}"}), 500
# Mock endpoint to generate South Indian recipes (replace with ChatGPT API)
@app.route('/generate_recipes', methods=['POST'])
def generate_recipes():
data = request.json
selected_ingredients = data.get('ingredients', [])
# Mock response simulating ChatGPT (replace with real API call)
ingredients_str = ', '.join(selected_ingredients)
mock_response = {
"recipes": [
{
"name": "Pongal",
"image_url": "https://via.placeholder.com/100?text=Pongal",
"description": "A traditional Tamil Nadu dish made with rice and moong dal, seasoned with ghee, pepper, and cumin, reflecting the simplicity and warmth of South Indian breakfasts.",
"details": {
"preparation": "Cook rice and moong dal with water, temper with ghee, cumin, pepper, and cashews, and serve hot with chutney.",
"key_ingredients": ["rice", "moong dal", "ghee", "pepper", "cumin"]
}
},
{
"name": "Payasam",
"image_url": "https://via.placeholder.com/100?text=Payasam",
"description": "A creamy Kerala dessert made with milk, jaggery, and rice, enriched with cardamom and coconut, a staple in South Indian festivities.",
"details": {
"preparation": "Boil milk, add rice and jaggery, simmer until thick, and flavor with cardamom and coconut.",
"key_ingredients": ["milk", "jaggery", "rice", "cardamom", "coconut"]
}
},
{
"name": "Idli",
"image_url": "https://via.placeholder.com/100?text=Idli",
"description": "A fluffy steamed cake from Karnataka, made with fermented rice and urad dal, served with sambar and chutney, embodying South Indian comfort food.",
"details": {
"preparation": "Ferment rice and urad dal batter, steam in idli molds, and serve with sambar and coconut chutney.",
"key_ingredients": ["rice", "urad dal", "sambar", "chutney"]
}
},
{
"name": "Dosa",
"image_url": "https://via.placeholder.com/100?text=Dosa",
"description": "A crispy Andhra Pradesh crepe made from fermented rice and urad dal, often filled with potato masala, a versatile South Indian delight.",
"details": {
"preparation": "Spread fermented batter on a hot griddle, cook until crispy, add potato filling, and serve with chutney.",
"key_ingredients": ["rice", "urad dal", "potato", "chutney"]
}
},
{
"name": "Upma",
"image_url": "https://via.placeholder.com/100?text=Upma",
"description": "A savory Tamil Nadu porridge made with semolina, tempered with mustard seeds and curry leaves, a quick yet flavorful breakfast option.",
"details": {
"preparation": "Roast semolina, cook with water, and temper with mustard seeds, curry leaves, and vegetables.",
"key_ingredients": ["semolina", "mustard seeds", "curry leaves", "vegetables"]
}
}
]
}
# Filter recipes based on selected ingredients (mock logic)
filtered_recipes = [
recipe for recipe in mock_response["recipes"]
if any(ing in ingredients_str.lower() for ing in recipe["details"]["key_ingredients"])
][:5] # Limit to 5 recipes
return jsonify({"recipes": filtered_recipes})
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=7860) |