Spaces:
Sleeping
Sleeping
built initial Dockerfile and modified app.py to serve from flask app in container
d8b766a
# this imports the code from files and modules | |
from flask import Flask, request, jsonify, send_from_directory | |
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 'dependencies' directory | |
def custom_static(filename): | |
return send_from_directory('dependencies', filename) | |
# Serve HTML files from the main directory | |
def serve_html(filename): | |
return send_from_directory('.', filename) | |
# Default route for index | |
def index(): | |
return send_from_directory('.', 'storeUI.html') # Make sure this points to your main HTML file | |
CORS(app)# Route to handle the incoming POST request with user description | |
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 | |
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 | |
if __name__ == '__main__': | |
app.run(debug=True) |