Spaces:
Running
Running
File size: 3,546 Bytes
27c79bc 40db3b8 d5fb696 27c79bc d5fb696 27c79bc d5fb696 760ff9a 40db3b8 bbbe8ba d8b766a bbbe8ba d8b766a f552fc6 40db3b8 d8b766a 40db3b8 d8b766a d5fb696 27c79bc d5fb696 c8a4cd8 760ff9a d5fb696 27c79bc d5fb696 8333c17 d5fb696 8333c17 d5fb696 27c79bc d5fb696 8333c17 d5fb696 bbbe8ba 40db3b8 bbbe8ba 40db3b8 bbbe8ba 27c79bc 5794b1c bbbe8ba |
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 |
# this imports the code from files and modules
from flask import Flask, request, jsonify, send_from_directory, url_for, render_template, send_file
from flask_cors import CORS
import os
import ctypes
import store_helper as sh
import block_builder
import sd_generator as sd
# This is a fix for the way that python doesn't release system memory back to the OS and it was leading to locking up the system
libc = ctypes.cdll.LoadLibrary("libc.so.6")
M_MMAP_THRESHOLD = -3
# Set malloc mmap threshold.
libc.mallopt(M_MMAP_THRESHOLD, 2**20)
# Initialize the Flask application
app = Flask(__name__)
os.makedirs('static/images', exist_ok=True)
# Serve files from the 'static' directory
@app.route('/static/<path:filename>')
def custom_static(filename):
return send_from_directory('static', filename)
# Serve HTML files from the main directory
@app.route('/<path:filename>')
def serve_html(filename):
return send_from_directory('.', filename)
@app.after_request
def apply_headers(response):
response.headers["Cross-Origin-Opener-Policy"] = "same-origin-allow-popups"
return response
# # Default route for index
# @app.route('/')
# def index():
# return send_from_directory('.', 'storeUI.html') # Make sure this points to your main HTML file
@app.route('/')
def index():
css_files = {
'all_css': url_for('static', filename='all.css'),
'font_css': url_for('static', filename='css.css?family=Open+Sans:400,300,600,700'),
'bundle_css': url_for('static', filename='bundle.css'),
'style_css': url_for('static', filename='style.css'),
'phb_style_css': url_for('static', filename='5ePHBstyle.css'),
'store_ui_css': url_for('static', filename='storeUI.css')
}
return render_template('storeUI.html', css_files=css_files)
CORS(app)# Route to handle the incoming POST request with user description
@app.route('/process-description', methods=['POST'])
def process_description():
data = request.json # Get the JSON data from the request
user_input = data.get('user_input', '') # Extract the 'user_input' field
# Print the received input to the console
print(f"Received user input: {user_input}")
# Call the LLM with the user input and return the result
llm_output = sh.call_llm_and_cleanup(user_input)
processed_blocks = block_builder.build_blocks(llm_output, block_builder.block_id)
return jsonify({'html_blocks': processed_blocks}) # Return the LLM output as JSON
@app.route('/generate-image', methods=['POST'])
def generate_image():
data = request.get_json()
image_subject = data.get('store_name')
sd_prompt = data.get('sd_prompt')
image_subject_name = data.get('store_front_sd_prompt')
if not sd_prompt:
return jsonify({'error': 'Missing sd_prompt'}), 400
image_subject = data.get('image_subject')
if not sd_prompt:
return jsonify({'error': 'Missing sd_prompt'}), 400
try:
image_url = sd.preview_and_generate_image(image_subject,image_subject_name, sd_prompt)
return jsonify({'image_url': image_url})
except Exception as e:
return jsonify({'error': str(e)}), 500
# New route to convert HTML to PDF
@app.route('/proxy.html', methods=['POST'])
def proxy():
html_content = request.form.get('htmlContent', '')
# Render the proxy HTML with the provided content
return render_template('proxy.html', html_content=html_content)
if __name__ == "__main__":
app.run(host="0.0.0.0", port=7860, debug=True) # Run the app on localhost, port 7860
|