Files
say/app.py
T

56 lines
1.5 KiB
Python

"""
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()