Análisis narrativo: framing, fact-checking y cobertura comparada
El módulo de análisis narrativo aplica LLM a cada documento para detectar encuadre, verificar afirmaciones y comparar cómo distintas fuentes cubren el mismo evento. Las tres funciones son independientes y se pueden invocar por separado o como parte del pipeline automático.
detect_framing — encuadre y sesgo
Analiza el encuadre narrativo, la dirección del sesgo y el tono de un artículo. El resultado incluye:
framing_type— tipo de encuadre (conflicto, consecuencias económicas, interés humano…)bias_direction—left / center-left / center / center-right / right / uncleartone_score— puntuación de tono (−1 negativo a +1 positivo)objectivity_score— estimación de objetividad (0–1)
fact_check_claims — extracción y verificabilidad
Extrae las afirmaciones verificables del texto y evalúa su plausibilidad:
claims[]— lista de afirmaciones context,verifiable(bool) yplausibility(alta/media/baja)red_flags[]— afirmaciones que requieren verificación urgenteoverall_credibility— puntuación global del documento
compare_coverage — comparación entre fuentes del mismo cluster
Dado un cluster_id, compara cómo distintas fuentes cubren el mismo evento: qué elementos enfatiza cada una, qué omiten y cómo difiere el tono entre ellas.
Arquitectura: LiteLLM + DSPy como fallback
Las llamadas LLM van siempre a través del proxy LiteLLM en http://litellm:4000. Si DSPy está activado (DSPY_ENABLED=true), el análisis de framing intenta primero el módulo DSPy compilado FramingDetector; si falla o no está disponible, cae al prompt directo. Esto permite mejorar la calidad del análisis de forma incremental sin cambiar la interfaz.
LITELLM_PROXY_URL=http://litellm:4000
LITELLM_MODEL_ANALYSIS=gpt-4o-mini # modelo específico para análisis
Todas las llamadas usan response_format: json_object y temperatura 0.2 para maximizar la consistencia del JSON devuelto.