"feat:enhance-podcast-topic-ai"

This commit is contained in:
ajaysi
2026-03-11 19:09:27 +05:30
parent e472861967
commit 01881bb405
51 changed files with 3627 additions and 218 deletions

View File

@@ -13,6 +13,7 @@ from datetime import datetime, timedelta
from dataclasses import dataclass, asdict
from loguru import logger
from services.database import has_onboarding_session
from ..txtai_service import TxtaiIntelligenceService
from ..semantic_cache import semantic_cache_manager
from ..sif_integration import SIFIntegrationService
@@ -74,9 +75,15 @@ class RealTimeSemanticMonitor:
def __init__(self, user_id: str):
self.user_id = user_id
self.intelligence_service = TxtaiIntelligenceService(user_id)
self.cache_manager = semantic_cache_manager
self.sif_service = SIFIntegrationService(user_id)
self.sif_enabled = has_onboarding_session(user_id)
self.intelligence_service = TxtaiIntelligenceService(user_id) if self.sif_enabled else None
self.sif_service = SIFIntegrationService(user_id) if self.sif_enabled else None
if not self.sif_enabled:
logger.info(
"Skipping semantic monitor SIF initialization for user {}: no onboarding session found",
user_id,
)
# Initialize monitoring agents (lazy initialization to avoid circular imports)
self.strategy_agent = None
@@ -239,6 +246,9 @@ class RealTimeSemanticMonitor:
async def _check_semantic_health(self) -> List[SemanticHealthMetric]:
"""Check overall semantic health of user's content."""
metrics = []
if not self.sif_enabled or not self.sif_service:
return metrics
try:
# Get current semantic insights
@@ -301,6 +311,8 @@ class RealTimeSemanticMonitor:
async def _monitor_competitors(self) -> List[CompetitorSemanticSnapshot]:
"""Monitor competitor semantic positioning."""
snapshots = []
if not self.sif_enabled or not self.intelligence_service:
return snapshots
try:
# 1. Get competitors from SIF integration
# We assume SIFIntegrationService has methods to get competitor data or we query index
@@ -370,6 +382,9 @@ class RealTimeSemanticMonitor:
async def _analyze_content_performance(self) -> List[ContentSemanticInsight]:
"""Analyze content performance and identify insights using SIF Agents."""
insights = []
if not self.sif_enabled or not self.sif_service:
return insights
try:
current_time = datetime.now()