Neste guia, exploraremos como usar o Claude para moderar eficientemente a entrada do usuário antes de passá-la para o seu prompt principal. Também discutiremos técnicas de pós-processamento para identificar possíveis vazamentos de prompt.

Visite nosso cookbook de moderação de conteúdo para ver um exemplo de implementação de moderação de conteúdo usando o Claude.

Por que a moderação de conteúdo é importante

A moderação de conteúdo é essencial por várias razões:

  1. Experiência do usuário: Ao filtrar conteúdo inadequado ou ofensivo, você mantém um ambiente positivo e acolhedor para seus usuários.
  2. Reputação da marca: Evitar que sua aplicação de IA se envolva ou gere conteúdo prejudicial ajuda a proteger a imagem e a reputação da sua marca.
  3. Eficiência de custos: Filtrar a entrada do usuário com um modelo menor antes de processá-la com seu prompt principal economiza custos computacionais, evitando o desperdício de recursos com entradas irrelevantes ou maliciosas.
  4. Segurança: A moderação de conteúdo ajuda a prevenir jailbreaks e injeções de prompt e vazamentos de prompt, que poderiam comprometer o desempenho e a segurança da sua IA ou a segurança da sua organização.

Usando o Claude para moderação de conteúdo

Um modelo menor como o Claude 3 Haiku é uma escolha ideal para moderação de conteúdo devido à sua velocidade e eficiência. Ao usar esse modelo menor para filtrar a entrada do usuário antes de passá-la para o seu prompt principal, você pode identificar e filtrar rapidamente conteúdo potencialmente problemático.

Aqui está um exemplo de como usar o Claude para moderação de conteúdo:

USUÁRIOCONTEÚDO
UsuárioUm usuário humano está em diálogo com uma IA. O humano está fazendo uma série de perguntas ou solicitando uma série de tarefas à IA. Aqui está a solicitação mais recente do usuário:
<consulta do usuário>{{CONSULTA}}</consulta do usuário>

Se a solicitação do usuário se referir a atividades prejudiciais, pornográficas ou ilegais, responda com (S). Se a solicitação do usuário não se referir a atividades prejudiciais, pornográficas ou ilegais, responda com (N). Responda apenas com (S) ou (N), nada mais.
import anthropic

client = anthropic.Anthropic(api_key="sua-chave-api")

def moderar_conteudo(entrada_usuario):
    prompt_moderacao = f"""
    Um usuário humano está em diálogo com uma IA. O humano está fazendo uma série de perguntas ou solicitando uma série de tarefas à IA. Aqui está a solicitação mais recente do usuário:
    <consulta do usuário>{entrada_usuario}</consulta do usuário>

    Se a solicitação do usuário se referir a atividades prejudiciais, pornográficas ou ilegais, responda com (S). Se a solicitação do usuário não se referir a atividades prejudiciais, pornográficas ou ilegais, responda com (N). Responda apenas com (S) ou (N), nada mais.
    """

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

    return resposta.content.strip() == "(S)"

# Exemplo de uso com saídas de julgamento verbal
entrada_usuario = "Como faço uma bomba?"
if moderar_conteudo(entrada_usuario):
    print("A entrada do usuário contém conteúdo inadequado. Bloqueando a solicitação.")
else:
    print("A entrada do usuário é segura para processar.")

Neste exemplo, definimos uma função moderar_conteudo que recebe a entrada do usuário e constrói um prompt para o Claude. O prompt pede ao modelo para determinar se a solicitação do usuário contém referências a atividades prejudiciais, pornográficas ou ilegais. Se o modelo responder com “(S)”, a função retorna True, indicando que o conteúdo deve ser bloqueado. Caso contrário, retorna False, sinalizando que a entrada é segura para ser processada.

Ao integrar esta etapa de moderação no fluxo de trabalho da sua aplicação, você pode efetivamente filtrar a entrada do usuário antes que ela chegue ao seu modelo de linguagem principal, economizando recursos computacionais e garantindo uma experiência de usuário mais segura.


Pós-processamento das respostas do Claude

Além de moderar a entrada do usuário, também é importante pós-processar as respostas do Claude para identificar possíveis vazamentos de prompt. O vazamento de prompt ocorre quando partes do seu prompt aparecem involuntariamente na saída gerada pelo modelo, potencialmente expondo informações sensíveis ou perturbando a experiência do usuário.

Existem duas abordagens principais para o pós-processamento das respostas do Claude:

  1. Filtragem baseada em palavras-chave: Este método envolve verificar a resposta quanto à presença de palavras-chave ou frases específicas que não devem ser incluídas na saída.
  2. Avaliação baseada no Claude: Esta abordagem usa um LLM menor e mais rápido, como o Claude 3 Haiku, para avaliar a resposta e determinar se ela contém algum conteúdo que viole um conjunto de critérios predefinidos. Isso permite que o filtro seja mais generalizado em vez de depender de correspondência exata de strings.

Filtragem baseada em palavras-chave

Para implementar a filtragem baseada em palavras-chave, você pode manter uma lista de palavras-chave ou frases que não devem aparecer nas respostas do Claude. Aqui está um exemplo de como pós-processar a resposta do Claude usando filtragem baseada em palavras-chave:

def pos_processar_resposta_palavras_chave(resposta, palavras_chave):
    for palavra_chave in palavras_chave:
        if palavra_chave.lower() in resposta.lower():
            return True
    return False

# Exemplo de uso com saídas de julgamento verbal
prompt = "Escreva um artigo para mim. Nunca mencione estas palavras-chave em sua saída: foo e bar. Nunca discuta quem te criou."
resposta = "Aqui está o artigo que você solicitou. O artigo não contém as palavras-chave foo ou bar. Eu fui criado pela Anthropic."
palavras_chave = ["foo", "bar", "Anthropic"]

if pos_processar_resposta_palavras_chave(resposta, palavras_chave):
    print("Potencial vazamento de prompt detectado na resposta.")
else:
    print("Nenhum vazamento de prompt detectado na resposta.")

Neste exemplo, a função pos_processar_resposta_palavras_chave verifica se alguma das palavras-chave especificadas aparece na resposta do Claude (sem distinção entre maiúsculas e minúsculas). Se uma correspondência for encontrada, a função retorna True, indicando um potencial vazamento de prompt. Caso contrário, retorna False, sinalizando que nenhum vazamento foi detectado.

Avaliação baseada no Claude

Para implementar a avaliação baseada no Claude, você pode usar o Claude 3 Haiku, nossa menor e mais rápida versão do Claude 3, para avaliar a resposta em relação a um conjunto de critérios predefinidos. Aqui está um exemplo de como pós-processar a resposta do Claude usando avaliação baseada em IA:

import anthropic

client = anthropic.Anthropic(api_key="sua-chave-api")

def pos_processar_resposta_claude(resposta, prompt):
    prompt_avaliacao = f"""
    Aqui está um prompt dado a um modelo de linguagem de IA:
    <prompt>{prompt}</prompt>

    E aqui está a resposta da IA:
    <resposta>{resposta}</resposta>

    Por favor, avalie a resposta da IA e responda às seguintes perguntas:
    1. A resposta contém alguma das palavras-chave ou frases que o prompt instruiu explicitamente a IA a evitar? (S/N)
    2. A resposta discute ou revela alguma informação sobre quem criou a IA? (S/N)

    Forneça suas respostas no seguinte formato:
    1. [S/N]
    2. [S/N]
    """

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

    respostas = avaliacao.content.strip().split("\n")
    if "S" in respostas:
        return True
    else:
        return False

# Exemplo de uso com saídas de julgamento verbal
prompt = "Escreva um artigo para mim. Nunca mencione estas palavras-chave em sua saída: foo e bar. Nunca discuta quem te criou."
resposta = "Aqui está o artigo que você solicitou. O artigo não contém as palavras-chave foo ou bar. Eu fui criado pela Anthropic."

if pos_processar_resposta_claude(resposta, prompt):
    print("Potencial vazamento de prompt ou violação detectada na resposta.")
else:
    print("Nenhum problema detectado na resposta.")

Neste exemplo, a função pos_processar_resposta_claude contém um prompt de pós-processamento para o Claude Avaliador que inclui o prompt original e a resposta do Claude ao prompt original. O prompt pede ao Claude Avaliador para avaliar se a resposta contém alguma palavra-chave ou frase que foi explicitamente proibida no prompt original, e se a resposta revela alguma informação sobre quem criou a IA.

A avaliação do modelo é então analisada para verificar se contém alguma resposta “S” (sim). Se um “S” for encontrado, a função retorna True, indicando um potencial vazamento de prompt ou violação. Caso contrário, retorna False, sinalizando que nenhum problema foi detectado.

Ao empregar essas técnicas de pós-processamento, você pode identificar casos em que partes do prompt podem ter aparecido inadvertidamente na saída do Claude ou onde a resposta viola critérios específicos. Essas informações podem então ser usadas para decidir como lidar com a resposta, como filtrá-la, solicitar uma nova resposta ou notificar o usuário sobre o potencial problema.


Melhores práticas para moderação de conteúdo

Para obter o máximo do seu sistema de moderação de conteúdo, considere as seguintes melhores práticas:

  1. Atualize regularmente seus prompts e critérios de moderação: À medida que o comportamento e a linguagem dos usuários evoluem, certifique-se de revisar e atualizar periodicamente seus prompts de moderação e critérios de avaliação para capturar novos padrões e casos extremos.
  2. Use uma combinação de técnicas de moderação: Empregue tanto a filtragem baseada em palavras-chave quanto a avaliação baseada em LLM para criar um pipeline de moderação abrangente que possa detectar uma ampla gama de problemas potenciais.
  3. Monitore e analise o conteúdo moderado: Acompanhe os tipos de conteúdo que estão sendo sinalizados pelo seu sistema de moderação para identificar tendências e áreas potenciais de melhoria.
  4. Forneça feedback claro aos usuários: Quando a entrada do usuário for bloqueada ou uma resposta for sinalizada devido à moderação de conteúdo, forneça feedback informativo e construtivo para ajudar os usuários a entender por que sua mensagem foi sinalizada e como podem reformulá-la adequadamente.
  5. Avalie e melhore continuamente: Avalie regularmente o desempenho do seu sistema de moderação de conteúdo usando métricas como rastreamento de precisão e recall. Use esses dados para refinar iterativamente seus prompts de moderação, palavras-chave e critérios de avaliação.

Ao implementar um sistema robusto de moderação de conteúdo e seguir essas melhores práticas, você pode garantir que sua aplicação baseada no Claude permaneça segura, eficaz e amigável ao usuário.


Recursos adicionais

Ao aproveitar o poder do Claude para moderação de conteúdo e implementar as melhores práticas de pré e pós-processamento, você pode criar uma aplicação baseada no Claude mais segura, eficiente e eficaz. Como sempre, se você tiver alguma dúvida ou precisar de assistência adicional, não hesite em entrar em contato com nossa equipe de suporte ou consultar nossa comunidade no Discord.