### 🚀 ML Models Runtime Preloading - **🔧 models loading**: Перенесена предзагрузка ML моделей из Docker build в runtime startup - Убрана предзагрузка из `Dockerfile` - модели теперь загружаются после монтирования `/dump` папки - Добавлена async функция `preload_models()` в `services/search.py` для фоновой загрузки - Интеграция предзагрузки в `lifespan` функцию `main.py` - Использование `asyncio.run_in_executor()` для неблокирующей загрузки моделей - Исправлена проблема с недоступностью `/dump` папки во время сборки Docker образа
This commit is contained in:
7
main.py
7
main.py
@@ -22,7 +22,7 @@ from auth.oauth import oauth_callback, oauth_login
|
||||
from cache.precache import precache_data
|
||||
from cache.revalidator import revalidation_manager
|
||||
from rbac import initialize_rbac
|
||||
from services.search import check_search_service, initialize_search_index, search_service
|
||||
from services.search import check_search_service, initialize_search_index, preload_models, search_service
|
||||
from services.viewed import ViewedStorage
|
||||
from settings import DEV_SERVER_PID_FILE_NAME
|
||||
from storage.redis import redis
|
||||
@@ -263,6 +263,11 @@ async def lifespan(app: Starlette):
|
||||
await initialize_search_index_with_data()
|
||||
print("[lifespan] Search service initialized with Muvera")
|
||||
|
||||
# 🚀 Предзагружаем ML модели после монтирования /dump
|
||||
print("[lifespan] Starting ML models preloading...")
|
||||
await preload_models()
|
||||
print("[lifespan] ML models preloading completed")
|
||||
|
||||
yield
|
||||
finally:
|
||||
print("[lifespan] Shutting down application services")
|
||||
|
||||
Reference in New Issue
Block a user