File size: 3,599 Bytes
c7e9f96 c36d41e c7e9f96 c36d41e c7e9f96 c36d41e c7e9f96 |
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 100 101 102 103 104 105 |
"""
Hugging Face Spaces์ฉ Flask ์ ํ๋ฆฌ์ผ์ด์
์ง์
์
"""
import sys
import os
import logging
from logging.handlers import RotatingFileHandler
# UTF-8 ์ธ์ฝ๋ฉ ๊ฐ์ ์ค์
if sys.platform == 'win32':
sys.stdout.reconfigure(encoding='utf-8')
sys.stderr.reconfigure(encoding='utf-8')
from app import create_app
app = create_app()
# Hugging Face Spaces ํ๊ฒฝ ๋ณ์ ์ค์
# Spaces๋ ์๋์ผ๋ก ํฌํธ๋ฅผ ํ ๋นํ๋ฏ๋ก ํ๊ฒฝ ๋ณ์์์ ๊ฐ์ ธ์ด
port = int(os.environ.get('PORT', 7860))
host = os.environ.get('HOST', '0.0.0.0')
# ๋ก๊น
์ค์
if not os.path.exists('logs'):
os.mkdir('logs')
# ํ์ผ ํธ๋ค๋ฌ ์ค์
file_handler = RotatingFileHandler('logs/server.log', maxBytes=10240000, backupCount=10)
file_handler.setFormatter(logging.Formatter(
'%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d]'
))
file_handler.setLevel(logging.INFO)
# ์ฝ์ ํธ๋ค๋ฌ ์ค์
console_handler = logging.StreamHandler(sys.stdout)
console_handler.setFormatter(logging.Formatter(
'%(asctime)s - %(name)s - %(levelname)s - %(message)s'
))
console_handler.setLevel(logging.INFO)
# Flask ์ฑ ๋ก๊ฑฐ ์ค์
app.logger.setLevel(logging.INFO)
app.logger.addHandler(file_handler)
app.logger.addHandler(console_handler)
# ๋ฃจํธ ๋ก๊ฑฐ ์ค์
root_logger = logging.getLogger()
root_logger.setLevel(logging.INFO)
root_logger.addHandler(console_handler)
# Werkzeug ๋ก๊ฑฐ ์ค์
werkzeug_logger = logging.getLogger('werkzeug')
werkzeug_logger.setLevel(logging.INFO)
werkzeug_logger.handlers.clear()
werkzeug_handler = logging.StreamHandler(sys.stdout)
werkzeug_handler.setFormatter(logging.Formatter(
'%(asctime)s - %(levelname)s - %(message)s'
))
werkzeug_logger.addHandler(werkzeug_handler)
# ํ๊ฒฝ ๋ณ์ ํ์ธ (๋๋ฒ๊น
์ฉ)
app.logger.info('=' * 80)
app.logger.info('ํ๊ฒฝ ๋ณ์ ํ์ธ:')
app.logger.info(f' PORT: {port}')
app.logger.info(f' HOST: {host}')
app.logger.info(f' SECRET_KEY: {"์ค์ ๋จ" if os.environ.get("SECRET_KEY") else "โ ๏ธ ์ค์ ๋์ง ์์"}')
app.logger.info(f' DATABASE_URL: {"์ค์ ๋จ" if os.environ.get("DATABASE_URL") else "SQLite ์ฌ์ฉ (๊ธฐ๋ณธ๊ฐ)"}')
app.logger.info(f' GEMINI_API_KEY: {"์ค์ ๋จ" if os.environ.get("GEMINI_API_KEY") else "์ค์ ๋์ง ์์"}')
app.logger.info(f' OLLAMA_BASE_URL: {os.environ.get("OLLAMA_BASE_URL", "http://localhost:11434")}')
app.logger.info('=' * 80)
app.logger.info(f'์๋ฒ ์์ - Host: {host}, Port: {port}')
if __name__ == '__main__':
try:
print(f"[{__name__}] ์๋ฒ ์์: http://{host}:{port}")
print(f"[{__name__}] ๋ก๊ทธ๋ ์ฝ์๊ณผ logs/server.log ํ์ผ์ ๊ธฐ๋ก๋ฉ๋๋ค.")
# ํ๊ฒฝ ๋ณ์ ํ์ธ ์ถ๋ ฅ
print("=" * 80)
print("ํ๊ฒฝ ๋ณ์ ํ์ธ:")
print(f" PORT: {port}")
print(f" HOST: {host}")
print(f" SECRET_KEY: {'์ค์ ๋จ' if os.environ.get('SECRET_KEY') else 'โ ๏ธ ์ค์ ๋์ง ์์'}")
print(f" DATABASE_URL: {'์ค์ ๋จ' if os.environ.get('DATABASE_URL') else 'SQLite ์ฌ์ฉ (๊ธฐ๋ณธ๊ฐ)'}")
print(f" GEMINI_API_KEY: {'์ค์ ๋จ' if os.environ.get('GEMINI_API_KEY') else '์ค์ ๋์ง ์์'}")
print(f" OLLAMA_BASE_URL: {os.environ.get('OLLAMA_BASE_URL', 'http://localhost:11434')}")
print("=" * 80)
app.run(host=host, port=port, debug=False, use_reloader=False)
except Exception as e:
print(f"์๋ฒ ์์ ์ค๋ฅ: {e}")
import traceback
traceback.print_exc()
# Hugging Face Space์์ ์๋ฌ๊ฐ ๋ณด์ด๋๋ก sys.exit ์ฌ์ฉ
sys.exit(1)
|