Guilherme34's picture
Upload folder using huggingface_hub
aa15bce verified
from __future__ import annotations
import asyncio
from ....logging_config import logger
from .summarizer import summarize_conversation
_pending = False
_running = False
def schedule_summarization() -> None:
"""Schedule a background summarization pass if not already queued."""
global _pending
_pending = True
try:
loop = asyncio.get_running_loop()
except RuntimeError:
logger.debug("summarization skipped (no running event loop)")
return
if not _running:
loop.create_task(_run_worker())
async def _run_worker() -> None:
global _pending, _running
if _running:
return
_running = True
try:
while _pending:
_pending = False
try:
await summarize_conversation()
except Exception as exc: # pragma: no cover - defensive
logger.error(
"summarization worker failed",
extra={"error": str(exc)},
)
finally:
_running = False
__all__ = ["schedule_summarization"]