grantforge-api / backend /bootstrap_wyszukiwarka.py
GrantForge Bot
Deploy sha-93ab5d396350b3e6db35d3bd315ec00724aa6c32 — source build (no GHCR)
5ecb84c
Raw
History Blame Contribute Delete
1.53 kB
"""Bootstrap P0: shim LangChain, katalog WYSZUKIWARKA, routery — minimalna ingerencja w server.py."""
from __future__ import annotations
import logging
import core.langchain_compat # noqa: F401
logger = logging.getLogger(__name__)
def init_patches() -> None:
from core.search.grant_search_catalog import apply_search_patches
from core.match.apply_phase1_patches import apply_match_phase1_patches
apply_search_patches()
apply_match_phase1_patches()
async def ensure_catalog_on_empty_db() -> None:
import os
from core.subscription.db import grant_count_with_retry, init_models, refresh_engine_pool
init_models()
from core.grants.sync_service import sync_wyszukiwarka_catalog, sync_grants_to_db
try:
count = grant_count_with_retry()
force = os.environ.get("FORCE_WYSZUKIWARKA_REIMPORT", "").lower() in ("1", "true", "yes")
if count == 0 or force:
logger.info("[Bootstrap] Import WYSZUKIWARKA (count=%s, force=%s)...", count, force)
await sync_wyszukiwarka_catalog()
refresh_engine_pool()
count = grant_count_with_retry()
if count == 0:
logger.info("[Bootstrap] WYSZUKIWARKA niedostępna — live scrape...")
await sync_grants_to_db()
refresh_engine_pool()
count = grant_count_with_retry()
logger.info("[Bootstrap] Baza naborów: %s rekordów.", count)
except Exception as e:
logger.error("[Bootstrap] Błąd inicjalizacji katalogu: %s", e)