voicemenuspe / app.py
lokesh341's picture
Update app.py
efa0646 verified
raw
history blame
3.94 kB
import torch
from flask import Flask, render_template, request, jsonify
import json
import os
from transformers import pipeline
from gtts import gTTS
from pydub import AudioSegment
from pydub.silence import detect_nonsilent
from transformers import AutoConfig
import time
from waitress import serve
from simple_salesforce import Salesforce
import requests
app = Flask(__name__)
device = "cuda" if torch.cuda.is_available() else "cpu"
config = AutoConfig.from_pretrained("openai/whisper-small")
config.update({"timeout": 60})
def generate_audio_prompt(text, filename):
try:
tts = gTTS(text)
tts.save(os.path.join("static", filename))
except gtts.tts.gTTSError as e:
print(f"Error: {e}")
time.sleep(5)
generate_audio_prompt(text, filename)
prompts = {
"welcome": "Welcome to Biryani Hub.",
"ask_name": "Tell me your name.",
"ask_email": "Please provide your email address.",
"thank_you": "Thank you for registration."
}
for key, text in prompts.items():
generate_audio_prompt(text, f"{key}.mp3")
try:
print("Attempting to connect to Salesforce...")
sf = Salesforce(username='[email protected]', password='Sati@1020', security_token='sSSjyhInIsUohKpG8sHzty2q')
print("Connected to Salesforce successfully!")
except Exception as e:
print(f"Failed to connect to Salesforce: {str(e)}")
@app.route("/")
def index():
return render_template("index.html")
@app.route("/dashboard")
def dashboard():
return render_template("dashboard.html")
@app.route("/menu")
def menu():
menu_items = [
{"id": 1, "name": "Chicken Biryani", "price": 250},
{"id": 2, "name": "Mutton Biryani", "price": 350},
{"id": 3, "name": "Veg Biryani", "price": 200},
{"id": 4, "name": "Paneer Butter Masala", "price": 180},
{"id": 5, "name": "Butter Naan", "price": 50}
]
return render_template("menu_page.html", menu_items=menu_items)
@app.route("/cart")
def cart():
return render_template("cart.html")
@app.route("/order")
def order():
return render_template("order.html")
@app.route("/final")
def final():
return render_template("final.html")
@app.route("/register", methods=["GET", "POST"])
def register():
if request.method == "POST":
data = request.form
name = data.get('name')
email = data.get('email')
phone = data.get('phone')
password = data.get('password')
if not name or not email or not phone or not password:
return jsonify({'error': 'Missing required fields'}), 400
try:
customer_register = sf.Customer_Login__c.create({
'Name': name,
'Email__c': email,
'Phone_Number__c': phone,
'Password__c': password
})
return render_template("register_success.html", success=True)
except Exception as e:
return render_template("register.html", error=str(e))
return render_template("register.html")
@app.route("/login", methods=["GET", "POST"])
def login():
if request.method == "POST":
data = request.form
email = data.get('email')
password = data.get('password')
if not email or not password:
return render_template("login.html", error="Missing email or password")
try:
query = f"SELECT Id FROM Customer_Login__c WHERE Email__c = '{email}' AND Password__c = '{password}'"
result = sf.query(query)
if result['totalSize'] > 0:
return render_template("dashboard.html", success=True)
else:
return render_template("login.html", error="Invalid credentials")
except Exception as e:
return render_template("login.html", error=str(e))
return render_template("login.html")
if __name__ == "__main__":
serve(app, host="0.0.0.0", port=7860)