fix: структура под платформу — код в site/, requirements.txt в корне
This commit is contained in:
+55
@@ -0,0 +1,55 @@
|
||||
"""
|
||||
Say — голосовой ассистент с Whisper + LLM.
|
||||
|
||||
Точка входа. Создаёт Flask-приложение, регистрирует Blueprints,
|
||||
настраивает логирование и запускает сервер.
|
||||
"""
|
||||
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from flask import Flask
|
||||
|
||||
from config import FLASK_HOST, FLASK_PORT, LOG_LEVEL
|
||||
from routes import pages_bp, api_bp
|
||||
|
||||
|
||||
def create_app() -> Flask:
|
||||
"""
|
||||
Фабрика Flask-приложения.
|
||||
|
||||
Собирает приложение из Blueprint'ов:
|
||||
- pages_bp — HTML-страницы (/, /health)
|
||||
- api_bp — REST API (/api/*)
|
||||
"""
|
||||
app = Flask(__name__)
|
||||
|
||||
# --- Blueprints ---
|
||||
app.register_blueprint(pages_bp)
|
||||
app.register_blueprint(api_bp)
|
||||
|
||||
# --- Логирование ---
|
||||
logging.basicConfig(
|
||||
level=getattr(logging, LOG_LEVEL.upper(), logging.INFO),
|
||||
format="%(asctime)s [%(levelname)s] %(name)s: %(message)s",
|
||||
stream=sys.stdout,
|
||||
)
|
||||
|
||||
return app
|
||||
|
||||
|
||||
# =============================================================================
|
||||
# Запуск
|
||||
# =============================================================================
|
||||
|
||||
if __name__ == "__main__":
|
||||
application = create_app()
|
||||
logging.info("Say server starting on %s:%s", FLASK_HOST, FLASK_PORT)
|
||||
application.run(
|
||||
host=FLASK_HOST,
|
||||
port=FLASK_PORT,
|
||||
debug=False,
|
||||
)
|
||||
else:
|
||||
# WSGI-сервер (gunicorn) импортирует `application`
|
||||
application = create_app()
|
||||
Reference in New Issue
Block a user