AI

Creando un Agente de IA Inteligente para la Moderación de Contenidos con Salida Estructurada

An illustration showing a virtual AI agent overseeing content moderation.

Construyendo un Agente Inteligente de IA para Moderación de Contenidos con Salida Estructurada

En este tutorial, exploraremos cómo crear un agente de IA inteligente que pueda moderar contenidos y generar informes estructurados. Usaremos las nuevas características de OpenAI para salida estructurada y llamada a funciones para construir este sistema avanzado. Nuestro objetivo es desarrollar una IA que pueda analizar contenidos de manera efectiva y proporcionar resultados organizados y detallados.

La Evolución de las Salidas de IA

OpenAI ha introducido recientemente capacidades de salida estructurada, lo que ha cambiado la forma en que trabajamos con modelos de IA. Antes de esta actualización, los desarrolladores enfrentaban muchos desafíos al usar contenido generado por IA. Las respuestas solían ser solo texto plano o formatos JSON simples. Esto causaba problemas tanto para desarrolladores como para empresas.

La falta de estructura en las salidas de IA a menudo llevaba a información inconsistente. Los desarrolladores tenían que escribir código complejo para dar sentido a las respuestas de la IA, lo que llevaba mucho tiempo y podía dar lugar a errores. También era difícil controlar cómo la IA presentaba la información, lo que hacía complicado utilizar estas salidas en sistemas existentes.

Estas limitaciones hacían especialmente desafiante construir aplicaciones fiables para tareas que necesitaban datos estructurados y precisos. Los equipos que trabajaban en documentos legales, informes de cumplimiento y análisis empresarial encontraban que pasaban más tiempo tratando con las salidas de IA que realmente beneficiándose de ellas.

El Cambio de Juego: Salidas Estructuradas

Pero ahora, las cosas han cambiado. OpenAI ha introducido algo llamado "salidas estructuradas". Esto significa que la IA ahora puede darnos información en un formato que es mucho más fácil de usar. Imagina pedir una receta y recibir de vuelta una lista organizada de ingredientes y pasos, en lugar de solo un bloque de texto. Eso es el tipo de mejora de la que estamos hablando.

Para nuestro agente de moderación de contenidos, esto es realmente emocionante. Ahora podemos pedirle a la IA información específica en formatos exactos. ¿Necesitas cláusulas legales, números financieros o requisitos de cumplimiento? La IA puede proporcionar esto de una manera estructurada que es fácil de manejar. Esto ahorra mucho tiempo y esfuerzo en el procesamiento y organización de la información.

Pero eso no es todo. OpenAI también ha añadido algo llamado "llamada a funciones" a sus modelos de IA. Esto es como darle a nuestro agente de IA la capacidad de presionar botones y tirar de palancas basándose en la información que procesa. No solo proporciona datos; también puede tomar acciones.

Al combinar salidas estructuradas y llamadas a funciones, nuestro agente se vuelve increíblemente poderoso. Puede trabajar con múltiples fuentes de información, tomar decisiones complejas y crear informes altamente personalizados. Es como tener un asistente súper inteligente que no solo puede entender información compleja, sino que también puede hacer algo útil con ella.

Este tipo de IA puede ser realmente útil para negocios que necesitan revisar mucho contenido rápidamente. Puede ayudar a garantizar que el contenido cumpla con ciertos estándares, señalar problemas potenciales e incluso sugerir mejoras. Y debido a que trabaja de manera rápida y consistente, puede liberar a los moderadores humanos para concentrarse en tareas más complejas.

En este tutorial, pasaremos por cómo construir este tipo de agente de IA. Te mostraremos cómo configurarlo, cómo usar estas nuevas características y cómo hacer que funcione para tus necesidades específicas. Al final, tendrás una herramienta poderosa que puede ayudar con todo tipo de tareas de moderación de contenido.

Vamos a codificar

Primero, crea un nuevo directorio para nuestro proyecto:

mkdir structuredOutput

A continuación, vamos a establecer un entorno virtual. Esto nos ayudará a gestionar las dependencias de nuestro proyecto por separado de otros proyectos de Python.

  • Para Windows: python -m venv venv
  • Para macOS y Linux: python3 -m venv venv

Con nuestro entorno virtual activado, instalemos las bibliotecas requeridas:

pip install openai supabase-py python-dotenv

Ahora, crea un archivo app.py en el directorio structuredOutput. Este será el archivo principal para nuestro proyecto.

A continuación, crea un archivo .env en el mismo directorio. Este archivo almacenará nuestra información sensible como claves API. Agrega los siguientes marcadores de posición al archivo:

OPENAI_API_KEY=
SUPABASE_URL=
SUPABASE_KEY=

No te preocupes si no tienes estas claves aún. En la siguiente sección, te guiaremos a través de la creación de una cuenta de Supabase, configurando una tabla y obteniendo las credenciales necesarias. También explicaremos cómo obtener tu clave API de OpenAI si aún no tienes una.

Al configurar nuestro entorno de esta manera, estamos asegurando que nuestro proyecto esté organizado, nuestras dependencias gestionadas y nuestra información sensible mantenida segura. Este enfoque nos prepara para el éxito a medida que avanzamos en la construcción de nuestro agente de salida estructurada.

Configurando las Claves API

Ahora que tenemos nuestra estructura de proyecto en su lugar, obtengamos las claves API necesarias para nuestra aplicación.

Clave API de OpenAI

  1. Visita tu panel de OpenAI en https://platform.openai.com/settings/organization/general
  2. Busca la sección de Claves API y crea una nueva clave secreta.
  3. copia esta clave y pégala en tu archivo .env para la variable OPENAI_API_KEY.

Introducción a Supabase

Supabase es una alternativa de Firebase de código abierto que proporciona un conjunto de herramientas para construir aplicaciones escalables y seguras. Ofrece una base de datos PostgreSQL, autenticación, API instantáneas y suscripciones en tiempo real, todo en un solo paquete.

Estamos utilizando Supabase en este proyecto por varias razones:

  • Fácil configuración: Supabase proporciona una interfaz fácil de usar para crear y gestionar bases de datos.
  • Poder de PostgreSQL: Está construido sobre PostgreSQL, dándonos acceso a una base de datos robusta y completa.
  • Capacidades en tiempo real: Supabase permite la sincronización de datos en tiempo real, lo que puede ser útil para la generación colaborativa de documentos.
  • Autenticación integrada: Aunque no estamos usando esto en este tutorial, el sistema de autenticación de Supabase puede ser valioso para asegurar tu aplicación en el futuro.
  • Escalabilidad: Supabase está diseñado para escalar con tu aplicación, lo que lo hace adecuado tanto para proyectos pequeños como para implementaciones a gran escala.

Configurando Supabase

Ahora, configuremos tu proyecto de Supabase:

  1. Visita https://supabase.com/dashboard/sign-up para crear una cuenta de Supabase si aún no tienes una.
  2. Una vez que inicies sesión, haz clic en "Nuevo proyecto" y sigue las instrucciones para crear un nuevo proyecto.
  3. Después de crear tu proyecto, serás llevado al panel del proyecto.
  4. En la barra lateral izquierda, haz clic en la Página principal de tu proyecto y desplázate hacia abajo para encontrar la sección API.
  5. Aquí, encontrarás la URL de tu proyecto y la clave API. Copia estos y agrégales a tu archivo .env para las variables SUPABASE_URL y SUPABASE_KEY respectivamente.

Tu archivo .env debería verse algo así (con tus claves reales, por supuesto):

OPENAI_API_KEY=TU_CLAVE_API_DE_OPENAI
SUPABASE_URL=TU_URL_DE_SUPABASE
SUPABASE_KEY=TU_CLAVE_DE_SUPABASE

Próximos Pasos

¡Gran trabajo! Ahora has configurado las cuentas y claves API necesarias para nuestro proyecto. En la siguiente sección, profundizaremos en la creación de nuestra tabla de Supabase, seleccionando los campos apropiados y configurando el esquema para nuestro sistema de generación de documentos. Esto sentará las bases para almacenar y recuperar los datos estructurados con los que trabajará nuestro agente de IA.

Creando la Tabla de Supabase

Ahora que tenemos configurado nuestro proyecto de Supabase, creemos la tabla que almacenará nuestros datos de moderación. Esta tabla será la columna vertebral de nuestro sistema de salida estructurada, permitiéndonos almacenar y recuperar resultados de moderación de manera eficiente.

Pasos para Crear la Tabla

  1. En tu panel del proyecto de Supabase, busca la barra lateral y haz clic en la pestaña "Editor de tablas".
  2. Haz clic en el botón "Crear una nueva tabla".
  3. Nombrar tu tabla MODERATION_TABLE.
  4. Desmarca la opción "Habilitar la Seguridad a Nivel de Filas (RLS)" por ahora. (Nota: En un entorno de producción, querrías establecer reglas de seguridad adecuadas.)

Configurando el Esquema

Para nuestro proyecto de moderación, necesitamos un esquema específico que pueda acomodar varios aspectos de la moderación de contenidos. En la interfaz de Supabase, verás una sección titulada "Columnas" con opciones para "Acerca de los tipos de datos" y "Importar datos a través de una hoja de cálculo". Debajo de eso, encontrarás campos para "Nombre", "Tipo", "Valor predeterminado" y "Primario".

Aquí está el esquema que utilizaremos:

  • id (texto) - Establecer como Primario
  • content_id (texto)
  • status (texto)
  • content (texto)
  • reported_to (texto)
  • is_offensive (bool)
  • confidence_score (float4)
  • flagged_terms (texto)
  • created_at (timestamp) - Establecer Valor Predeterminado a now()
  • moderation_result (texto)

Agrega cada una de estas columnas a tu tabla usando la interfaz de Supabase. Asegúrate de establecer el tipo de dato correcto para cada columna y marcar la columna id como la clave primaria.

Después de agregar todas las columnas, haz clic en el botón "Guardar" para crear tu tabla.

Próximos Pasos

Con nuestra tabla de Supabase ahora configurada, tenemos una base sólida para almacenar la salida estructurada de nuestro agente de moderación de IA. En la siguiente sección, comenzaremos a construir el código en Python para interactuar con esta tabla, incluidas las funciones para insertar nuevas entradas de moderación y recuperar las existentes. Esto formará el núcleo de las capacidades de gestión de datos de nuestro sistema de moderación.

Entrando en la Codificación Real

Desglosemos este código en secciones y luego profundicemos en cada función. Comenzaremos con las primeras dos secciones.

Importaciones y Configuración Inicial

Esta sección establece nuestro entorno importando las bibliotecas necesarias e inicializando componentes clave. Estamos utilizando Pydantic para la validación de datos, OpenAI para interacciones con la IA y Supabase para operaciones de base de datos. Colorama se usa para la salida de consola en color, mejorando la legibilidad.

Operaciones de Base de Datos

Esta función, supabase_operation, es una ayudante versátil para interactuar con nuestra base de datos de Supabase. Soporta varias operaciones como insertar, seleccionar, actualizar y eliminar. Desglosemos:

  • Comenzamos creando un objeto de consulta para nuestra MODERATION_TABLE.
  • Dependiendo de la operación (insertar, seleccionar, actualizar o eliminar), modificamos la consulta en consecuencia.
  • Si se proporcionan filtros, los aplicamos a la consulta. Esto permite operaciones de base de datos más específicas.
  • Finalmente, ejecutamos la consulta y devolvemos el resultado.

Esta función abstrae las complejidades de las operaciones de base de datos, facilitando realizar diversas acciones en nuestros datos de moderación a lo largo del resto del código.

Modelos de Datos y Funciones de Moderación

Examinemos la siguiente sección de nuestro código, la cual define nuestros modelos de datos y funciones de moderación centrales.

Esta sección define las estructuras y funciones clave para nuestro sistema de moderación:

  • Modelos Pydantic: Usamos Pydantic para definir modelos de datos estructurados. ModerationResult representa la salida central de moderación, mientras que ModerationOutput incluye metadatos adicionales sobre el contenido moderado.
  • Función moderate_text: Esta es nuestra función principal de moderación. Así es como funciona:
    • Toma un content_id y el contenido a moderar.
    • Revisa el contenido contra una lista de términos ofensivos predefinidos.
    • Calcula si el contenido es ofensivo y asigna un puntaje de confianza.
    • El resultado se formatea en un diccionario que coincide con nuestro modelo ModerationOutput.
    • El resultado se inserta en nuestra base de datos de Supabase usando la función supabase_operation que definimos anteriormente.
    • Finalmente, devuelve el resultado de moderación.
  • Esta función forma el núcleo de nuestro sistema de moderación. Es una versión simplificada que podría expandirse con técnicas de moderación más sofisticadas, como modelos de aprendizaje automático o conjuntos de reglas más complejas.

El uso de modelos Pydantic garantiza que nuestros datos estén estructurados de manera consistente en toda la aplicación, lo que facilita trabajar y validar.

La función block_content toma un content_id como entrada. Está diseñada para marcar el contenido como bloqueado cuando se considera demasiado ofensivo. Esta función crea un registro en nuestra base de datos indicando que el contenido ha sido bloqueado, junto con la razón. Es una función crucial para mantener los estándares de contenido en una plataforma.

La función issue_warning se utiliza para contenidos que están en el límite de ser inapropiados. También toma un content_id y registra una advertencia en la base de datos. Esta función es útil para rastrear a usuarios que publican frecuentemente contenido cuestionable o para dar a los usuarios la oportunidad de modificar su comportamiento antes de que se tomen acciones más severas.

La función report_to_human es nuestra opción de respaldo para casos complejos. Toma tanto el content_id como el contenido en sí. Esta función señala el contenido para revisión por un moderador humano, lo cual es esencial para manejar situaciones matizadas que la IA podría no estar equipada para juzgar con precisión.

Cada una de estas funciones devuelve un diccionario que contiene información sobre la acción tomada. Todas utilizan nuestra función supabase_operation para insertar registros en la base de datos, asegurando que todas las acciones de moderación estén registradas y sean rastreables.

Configuración de Mensajes Iniciales

Esta sección inicializa la lista de mensajes, que es crucial para mantener el contexto de la conversación con la IA:

  • El primer mensaje establece el rol del sistema, definiendo el comportamiento de la IA como asistente de moderación de contenido.
  • El segundo mensaje simula una entrada inicial del usuario para iniciar la conversación.

Estos mensajes proporcionan el contexto inicial para la IA, preparando el escenario para el proceso de moderación.

Ciclo Principal de Conversación

El corazón de nuestro sistema de moderación de contenido es el ciclo principal de conversación. Este ciclo gestiona la interacción continua entre el usuario y la IA, manejando la entrada, procesando respuestas y ejecutando acciones de moderación.

Inicialización

El ciclo comienza con una fase de inicialización. Imprimimos un mensaje de bienvenida para señalar que el sistema de moderación está listo. Esto le da al usuario una indicación clara de que puede comenzar a interactuar con el sistema. El uso de texto coloreado mejora la experiencia del usuario.

Luego, entramos en un ciclo while infinito, permitiendo que nuestro sistema acepte y procese continuamente la entrada del usuario hasta que se le indique explícitamente que se detenga.

Manejo de Entrada del Usuario

En cada iteración, manejamos la entrada del usuario. El sistema pregunta al usuario con un prefijo verde "Usuario:". Luego verificamos si el usuario desea salir de la conversación comparando su entrada con una lista de comandos de salida. Si no están saliendo, agregamos su entrada a nuestra lista de mensajes, manteniendo todo el historial de la conversación.

Análisis de Contenido

Con la entrada del usuario capturada, pasamos a la fase de análisis. Indicamos que el análisis del contenido está en progreso y añadimos una breve pausa para mejorar la experiencia del usuario. El sistema luego envía una solicitud a la API de OpenAI, pasando todo el historial de conversación, funciones disponibles y especificando que la IA puede decidir si llama a una función.

Procesamiento de Respuestas

Después de recibir la respuesta de la API, la procesamos. Comprobamos si la IA decidió llamar a una función. Si es así, extraemos el nombre y los argumentos de la función, preparándonos para ejecutar la acción de moderación apropiada.

Ejecución de Funciones

Dependiendo de la función llamada, se realizan diferentes acciones:

  • Para la moderación de texto, llamamos a la función moderate_text y procesamos su resultado. Se pueden tomar acciones adicionales basadas en la salida de moderación, como bloquear contenido o emitir advertencias.
  • Otras funciones gestionan acciones como bloquear contenido, emitir advertencias o informar a moderadores humanos. Cada acción se ejecuta y su resultado se imprime para que el usuario lo vea.

Respuesta Regular de la IA

Si no se realiza ninguna llamada a funciones, simplemente imprimimos la respuesta de la IA al usuario.

Finalización del Ciclo

Esta sección gestiona excepciones y proporciona una actualización final del estado. El bloque except captura y muestra cualquier error que ocurra durante la ejecución del ciclo principal, imprimiéndolos en rojo para visibilidad. La declaración de impresión final, independientemente de los errores, confirma que el registro de moderación se ha guardado en la base de datos, mostrado en verde para refuerzo positivo. Esto asegura que los usuarios estén informados tanto de errores como de la finalización exitosa del proceso de moderación.

Ejecutando el Agente

Para ejecutar el agente de moderación de contenido, sigue estos pasos:

  1. Abre tu terminal o símbolo del sistema.
  2. Navega al directorio que contiene app.py.
  3. Ejecuta el siguiente comando:
  4. python app.py

Esto iniciará el agente, y verás el mensaje de inicialización. Luego puedes comenzar a interactuar con el sistema escribiendo tus mensajes.

Flujo de Trabajo del Agente

En una aplicación real, este agente sería probablemente parte de un sistema más grande y asíncrono. Así es como podría funcionar:

  • Cada mensaje en una plataforma de chat o redes sociales se enviaría a este agente para moderación.
  • El agente procesaría cada mensaje de manera asíncrona, permitiendo una moderación en tiempo real y de alto volumen.
  • Dependiendo de la decisión del agente, los mensajes podrían ser:
    • Permitidos inmediatamente
    • Bloqueados para ser publicados
    • Marcados para revisión humana
    • Activar advertencias o acciones en cuentas de usuarios
  • Los resultados de la moderación se registrarían en la base de datos para auditoría y mejora del sistema con el tiempo.

Esta configuración permite una moderación de contenido escalable y potenciada por IA que puede manejar grandes volúmenes de mensajes a través de múltiples conversaciones o plataformas simultáneamente, ofreciendo una experiencia de usuario más segura y controlada.

Conclusión

En este tutorial, hemos construido un sofisticado sistema de moderación de contenido potenciado por IA utilizando las capacidades de salida estructurada y llamada a funciones de OpenAI. Este sistema demuestra cómo:

  • Configurar un entorno de desarrollo para aplicaciones impulsadas por IA
  • Integrar la API de OpenAI para procesamiento de lenguaje avanzado
  • Implementar una solución de base de datos usando Supabase para registro y persistencia de datos
  • Crear un bucle de moderación de contenido robusto e interactivo

Al ejecutar python app.py, puedes iniciar el agente y experimentar la moderación de contenido en tiempo real. En un entorno de producción, este sistema podría ampliarse para manejar múltiples conversaciones de manera asíncrona, brindando moderación eficiente y potenciada por IA para varias plataformas.

Este proyecto sirve como base para construir sistemas de IA más complejos, mostrando el potencial de combinar salidas estructuradas con llamadas a funciones en aplicaciones prácticas. A medida que la tecnología de IA continúa evolucionando, sistemas como este desempeñarán un papel crucial en el mantenimiento de entornos en línea seguros y productivos.

Puede que te interese

Upstage Solar LLM in action, showcasing various AI applications and use cases.
A developer setting up intelligent agents with CrewAI framework.

Dejar un comentario

Todos los comentarios se revisan antes de su publicación.

Este sitio está protegido por hCaptcha y se aplican la Política de privacidad de hCaptcha y los Términos del servicio.