UnisKB/apps/maxkb/wsgi/web.py

59 lines
1.3 KiB
Python
Raw Normal View History

2025-11-05 11:05:26 +00:00
# coding=utf-8
2025-04-14 12:11:23 +00:00
"""
2025-11-05 11:05:26 +00:00
@project: MaxKB
@Author虎虎
@file web.py
@date2025/11/5 15:14
@desc:
2025-04-14 12:11:23 +00:00
"""
2025-11-06 12:17:21 +00:00
import builtins
2025-04-14 12:11:23 +00:00
import os
2025-11-06 12:17:21 +00:00
import sys
2025-04-14 12:11:23 +00:00
from django.core.wsgi import get_wsgi_application
2025-11-06 12:17:21 +00:00
class TorchBlocker:
def __init__(self):
self.original_import = builtins.__import__
def __call__(self, name, *args, **kwargs):
if len([True for i in
['torch']
if
i in name.lower()]) > 0:
print(f"Disable package is being imported: 【{name}", file=sys.stderr)
pass
else:
return self.original_import(name, *args, **kwargs)
# 安装导入拦截器
builtins.__import__ = TorchBlocker()
2025-04-14 12:11:23 +00:00
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'maxkb.settings')
os.environ['TIKTOKEN_CACHE_DIR'] = '/opt/maxkb-app/model/tokenizer/openai-tiktoken-cl100k-base'
2025-04-14 12:11:23 +00:00
application = get_wsgi_application()
def post_handler():
from common.database_model_manage.database_model_manage import DatabaseModelManage
from common import event
event.run()
DatabaseModelManage.init()
def post_scheduler_handler():
from common import job
job.run()
2025-11-06 12:17:21 +00:00
# 启动后处理函数
post_handler()
# 仅在scheduler中启动定时任务dev local_model celery 不需要
if os.environ.get('ENABLE_SCHEDULER') == '1':
2025-11-06 12:17:21 +00:00
post_scheduler_handler()