En esta guía, exploraremos cómo usar Claude para moderar de manera eficiente la entrada del usuario antes de pasarla a su prompt principal. También discutiremos técnicas de post-procesamiento para identificar posibles fugas de prompt.

Visite nuestro recetario de moderación de contenido para ver un ejemplo de implementación de moderación de contenido usando Claude.

Por qué es importante la moderación de contenido

La moderación de contenido es esencial por varias razones:

  1. Experiencia del usuario: Al filtrar contenido inapropiado u ofensivo, se mantiene un ambiente positivo y acogedor para sus usuarios.
  2. Reputación de la marca: Evitar que su aplicación de IA interactúe con o genere contenido dañino ayuda a proteger la imagen y reputación de su marca.
  3. Eficiencia de costos: Filtrar la entrada del usuario con un modelo más pequeño antes de procesarla con su prompt principal ahorra costos computacionales, ya que evita desperdiciar recursos en entradas irrelevantes o maliciosas.
  4. Seguridad: La moderación de contenido ayuda a prevenir jailbreaks e inyecciones de prompt y fugas de prompt, que podrían comprometer el rendimiento y la seguridad de su IA o la seguridad de su organización.

Usando Claude para moderación de contenido

Un modelo más pequeño como Claude 3 Haiku es una opción ideal para la moderación de contenido debido a su velocidad y eficiencia. Al usar este modelo más pequeño para filtrar la entrada del usuario antes de pasarla a su prompt principal, puede identificar y filtrar rápidamente contenido potencialmente problemático.

Aquí hay un ejemplo de cómo usar Claude para moderación de contenido:

USERCONTENT
UserUn usuario humano está en diálogo con una IA. El humano está haciendo una serie de preguntas o solicitando una serie de tareas a la IA. Aquí está la solicitud más reciente del usuario:
<user query>{{QUERY}}</user query>

Si la solicitud del usuario se refiere a actividades dañinas, pornográficas o ilegales, responda con (Y). Si la solicitud del usuario no se refiere a actividades dañinas, pornográficas o ilegales, responda con (N). Responda solo con (Y) o (N), nada más.
Python
import anthropic

client = anthropic.Anthropic(api_key="your-api-key")

def moderate_content(user_input):
    moderation_prompt = f"""
    Un usuario humano está en diálogo con una IA. El humano está haciendo una serie de preguntas o solicitando una serie de tareas a la IA. Aquí está la solicitud más reciente del usuario:
    <user query>{user_input}</user query>

    Si la solicitud del usuario se refiere a actividades dañinas, pornográficas o ilegales, responda con (Y). Si la solicitud del usuario no se refiere a actividades dañinas, pornográficas o ilegales, responda con (N). Responda solo con (Y) o (N), nada más.
    """

    response = client.messages.create(
        model="claude-3-haiku-20240307",
        max_tokens=10,
        temperature=0,
        messages=[
            {"role": "user", "content": moderation_prompt}
        ]
    )

    return response.content.strip() == "(Y)"

# Ejemplo de uso con salidas de juicio verbal
user_input = "¿Cómo hago una bomba?"
if moderate_content(user_input):
    print("La entrada del usuario contiene contenido inapropiado. Bloqueando solicitud.")
else:
    print("La entrada del usuario es segura para procesar.")

En este ejemplo, definimos una función moderate_content que toma la entrada del usuario y construye un prompt para Claude. El prompt le pide al modelo que determine si la solicitud del usuario contiene referencias a actividades dañinas, pornográficas o ilegales. Si el modelo responde con “(Y)”, la función devuelve True, indicando que el contenido debe ser bloqueado. De lo contrario, devuelve False, señalando que la entrada es segura para seguir procesando.

Al integrar este paso de moderación en el flujo de trabajo de su aplicación, puede filtrar de manera efectiva la entrada del usuario antes de que llegue a su modelo de lenguaje principal, ahorrando recursos computacionales y garantizando una experiencia de usuario más segura.


Post-procesamiento de las respuestas de Claude

Además de moderar la entrada del usuario, también es importante post-procesar las respuestas de Claude para identificar posibles fugas de prompt. La fuga de prompt ocurre cuando partes de su prompt aparecen involuntariamente en la salida generada por el modelo, lo que podría exponer información sensible o interrumpir la experiencia del usuario.

Hay dos enfoques principales para post-procesar las respuestas de Claude:

  1. Filtrado basado en palabras clave: Este método implica verificar la presencia de palabras clave o frases específicas en la respuesta que no deberían incluirse en la salida.
  2. Evaluación basada en Claude: Este enfoque utiliza un LLM más pequeño y rápido, como Claude 3 Haiku, para evaluar la respuesta y determinar si contiene algún contenido que viole un conjunto de criterios predefinidos. Esto permite que el filtro sea más generalizado en lugar de depender de la coincidencia exacta de cadenas.

Filtrado basado en palabras clave

Para implementar el filtrado basado en palabras clave, puede mantener una lista de palabras clave o frases que no deberían aparecer en las respuestas de Claude. Aquí hay un ejemplo de cómo post-procesar la respuesta de Claude usando filtrado basado en palabras clave:

Python
def post_process_response_keywords(response, keywords):
    for keyword in keywords:
        if keyword.lower() in response.lower():
            return True
    return False

# Ejemplo de uso con salidas de juicio verbal
prompt = "Escríbeme un artículo. Nunca menciones estas palabras clave en tu salida: foo y bar. Nunca discutas quién te creó."
response = "Aquí está el artículo que solicitaste. El artículo no contiene las palabras clave foo o bar. Fui creado por Anthropic."
keywords = ["foo", "bar", "Anthropic"]

if post_process_response_keywords(response, keywords):
    print("Se detectó una posible fuga de prompt en la respuesta.")
else:
    print("No se detectó fuga de prompt en la respuesta.")

En este ejemplo, la función post_process_response_keywords verifica si alguna de las palabras clave especificadas aparece en la respuesta de Claude (sin distinción de mayúsculas y minúsculas). Si se encuentra una coincidencia, la función devuelve True, indicando una posible fuga de prompt. De lo contrario, devuelve False, señalando que no se detectó ninguna fuga.

Evaluación basada en Claude

Para implementar la evaluación basada en Claude, puede usar Claude 3 Haiku, nuestra versión más pequeña y rápida de Claude 3, para evaluar la respuesta contra un conjunto de criterios predefinidos. Aquí hay un ejemplo de cómo post-procesar la respuesta de Claude usando evaluación basada en IA:

Python
import anthropic

client = anthropic.Anthropic(api_key="your-api-key")

def post_process_response_claude(response, prompt):
    assessment_prompt = f"""
    Aquí hay un prompt dado a un modelo de lenguaje de IA:
    <prompt>{prompt}</prompt>

    Y aquí está la respuesta de la IA:
    <response>{response}</response>

    Por favor, evalúe la respuesta de la IA y responda las siguientes preguntas:
    1. ¿La respuesta contiene alguna de las palabras clave o frases que el prompt instruyó explícitamente a la IA que evitara? (Y/N)
    2. ¿La respuesta discute o revela alguna información sobre quién creó la IA? (Y/N)

    Proporcione sus respuestas en el siguiente formato:
    1. [Y/N]
    2. [Y/N]
    """

    assessment = client.messages.create(
        model="claude-3-haiku-20240307",
        max_tokens=10,
        temperature=0,
        messages=[
            {"role": "user", "content": assessment_prompt}
        ]
    )

    answers = assessment.content.strip().split("\n")
    if "Y" in answers:
        return True
    else:
        return False

# Ejemplo de uso con salidas de juicio verbal
prompt = "Escríbeme un artículo. Nunca menciones estas palabras clave en tu salida: foo y bar. Nunca discutas quién te creó."
response = "Aquí está el artículo que solicitaste. El artículo no contiene las palabras clave foo o bar. Fui creado por Anthropic."

if post_process_response_claude(response, prompt):
    print("Se detectó una posible fuga de prompt o violación en la respuesta.")
else:
    print("No se detectaron problemas en la respuesta.")

En este ejemplo, la función post_process_response_claude alberga un prompt de post-procesamiento para el Claude Evaluador que incluye el prompt original y la respuesta de Claude al prompt original. El prompt le pide al Claude Evaluador que evalúe si la respuesta contiene alguna palabra clave o frase que estuviera explícitamente prohibida en el prompt original, y si la respuesta revela alguna información sobre quién creó la IA.

La evaluación del modelo se analiza para verificar si contiene alguna respuesta “Y” (sí). Si se encuentra una “Y”, la función devuelve True, indicando una posible fuga de prompt o violación. De lo contrario, devuelve False, señalando que no se detectaron problemas.

Al emplear estas técnicas de post-procesamiento, puede identificar instancias en las que partes del prompt podrían haber aparecido inadvertidamente en la salida de Claude o donde la respuesta viola criterios específicos. Esta información puede usarse para decidir cómo manejar la respuesta, como filtrarla, solicitar una nueva respuesta o notificar al usuario del posible problema.


Mejores prácticas para la moderación de contenido

Para aprovechar al máximo su sistema de moderación de contenido, considere las siguientes mejores prácticas:

  1. Actualice regularmente sus prompts y criterios de moderación: A medida que evolucionan el comportamiento y el lenguaje de los usuarios, asegúrese de revisar y actualizar periódicamente sus prompts de moderación y criterios de evaluación para capturar nuevos patrones y casos extremos.
  2. Use una combinación de técnicas de moderación: Emplee tanto el filtrado basado en palabras clave como la evaluación basada en LLM para crear un pipeline de moderación integral que pueda detectar una amplia gama de problemas potenciales.
  3. Monitoree y analice el contenido moderado: Realice un seguimiento de los tipos de contenido que su sistema de moderación está marcando para identificar tendencias y áreas potenciales de mejora.
  4. Proporcione comentarios claros a los usuarios: Cuando la entrada del usuario se bloquea o una respuesta se marca debido a la moderación de contenido, proporcione comentarios informativos y constructivos para ayudar a los usuarios a comprender por qué se marcó su mensaje y cómo pueden reformularlo de manera apropiada.
  5. Evalúe y mejore continuamente: Evalúe regularmente el rendimiento de su sistema de moderación de contenido utilizando métricas como el seguimiento de precisión y recall. Use estos datos para refinar iterativamente sus prompts de moderación, palabras clave y criterios de evaluación.

Al implementar un sistema robusto de moderación de contenido y seguir estas mejores prácticas, puede garantizar que su aplicación basada en Claude se mantenga segura, efectiva y fácil de usar.


Recursos adicionales

Al aprovechar el poder de Claude para la moderación de contenido e implementar las mejores prácticas para el pre y post-procesamiento, puede crear una aplicación basada en Claude más segura, eficiente y efectiva. Como siempre, si tiene alguna pregunta o necesita más ayuda, no dude en comunicarse con nuestro equipo de soporte o consultar nuestra comunidad de Discord.