API para verificar influencers y analizar sus declaraciones de salud en redes sociales.
Esta API está construida con NestJS y proporciona funcionalidades para:
- Verificar y registrar influencers
- Analizar declaraciones de salud realizadas por influencers
- Gestionar tareas de investigación sobre declaraciones de salud
- Verificación de Influencers: Sistema automatizado para verificar y registrar influencers.
- Análisis de Declaraciones: Capacidad para analizar y evaluar declaraciones de salud.
- Gestión de Investigaciones: Sistema de tareas para investigar y dar seguimiento a las declaraciones.
- Node.js (v18 o superior)
- npm (incluido con Node.js)
- SQLite (incluido en el proyecto)
- Clonar el repositorio:
git clone [url-del-repositorio]
cd influencer-claims-api
- Instalar dependencias:
npm install
- Iniciar la aplicación en modo desarrollo:
npm run start:dev
La API estará disponible en http://localhost:3000
-
POST /influencers/verify
- Verifica y registra un nuevo influencer
- Body:
{ "handle": "nombre_usuario" }
-
GET /influencers
- Obtiene lista de todos los influencers registrados
-
GET /influencers/:id
- Obtiene detalles de un influencer específico
-
POST /research/tasks
- Crea una nueva tarea de investigación
- Body: Datos parciales de ResearchTask
-
GET /research/tasks
- Obtiene todas las tareas de investigación
-
GET /research/tasks/:id
- Obtiene detalles de una tarea específica
-
DELETE /research/tasks/:id
- Elimina una tarea de investigación
npm run build
- Compila el proyectonpm run format
- Formatea el código usando Prettiernpm run start
- Inicia la aplicaciónnpm run start:dev
- Inicia la aplicación en modo desarrollo con hot-reloadnpm run start:debug
- Inicia la aplicación en modo debugnpm run start:prod
- Inicia la aplicación en modo producciónnpm run lint
- Ejecuta el linternpm test
- Ejecuta los testsnpm run test:watch
- Ejecuta los tests en modo watchnpm run test:cov
- Ejecuta los tests con coberturanpm run test:e2e
- Ejecuta los tests end-to-end
El proyecto utiliza SQLite como base de datos, lo que significa que:
- No requiere configuración adicional de base de datos
- Los datos se almacenan en el archivo
db.sqlite
- Ideal para desarrollo y pruebas
La API incluye manejo de errores para:
- Límites de tokens en respuestas
- Errores de verificación de influencers
- Errores en la creación de tareas de investigación
El sistema implementa una estrategia robusta para evitar la duplicación de influencers:
-
Verificación Inicial:
- Utiliza Perplexity AI para verificar si el handle corresponde a un influencer de salud
- Recopila información detallada incluyendo nombre principal, aliases y datos relevantes
-
Detección de Duplicados:
- Compara el handle y aliases del nuevo influencer con los existentes
- La comparación es case-insensitive para mayor precisión
- Considera múltiples variantes de nombres de usuario
-
Actualización Automática:
- Si se encuentra un influencer existente, se actualiza su información
- Se mantienen datos actualizados de:
- Nombre principal
- Descripción
- Aliases
- Tags de contenido
- Ingresos estimados
- Seguidores totales
- Fecha de última verificación
Para evitar la duplicación de declaraciones de salud:
-
Verificación de Similitud:
- Utiliza el algoritmo de Levenshtein distance
- Compara nuevas declaraciones con las existentes del mismo influencer
- Considera similares las declaraciones con 85% o más de coincidencia
-
Gestión de Duplicados:
- Cuando se crea una nueva tarea de investigación, el sistema analiza las declaraciones encontradas
- Si una declaración es similar a una existente (≥85% similitud), en lugar de crear un duplicado:
- Se reutiliza la declaración existente
- La nueva tarea de investigación se vincula a esta declaración existente
- Esto permite mantener un historial unificado de cada declaración a través de múltiples tareas de investigación
- La API utiliza TypeORM para la gestión de la base de datos
- Incluye validación de datos mediante class-validator
- Implementa el patrón de arquitectura REST
- Soporta operaciones CRUD para las entidades principales