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 inapropriado ou ofensivo, você mantém um ambiente positivo e acolhedor para seus usuários.
  2. Reputação da marca: Evitar que seu aplicativo de IA se envolva com 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, pois você evita desperdiçar 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 podem 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:

USERCONTENT
UserUm 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. Aqui está a solicitação mais recente do usuário:
<user query>{{QUERY}}</user query>

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

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

def moderate_content(user_input):
    moderation_prompt = 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. Aqui está a solicitação mais recente do usuário:
    <user query>{user_input}</user query>

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

    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)"

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

Neste exemplo, definimos uma função moderate_content 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 “(Y)”, a função retorna True, indicando que o conteúdo deve ser bloqueado. Caso contrário, ela retorna False, sinalizando que a entrada é segura para processamento adicional.

Ao integrar essa etapa de moderação no fluxo de trabalho do seu aplicativo, você pode filtrar efetivamente 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 não intencionalmente na saída gerada pelo modelo, potencialmente expondo informações sensíveis ou interrompendo 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 viola 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:

Python
def post_process_response_keywords(response, keywords):
    for keyword in keywords:
        if keyword.lower() in response.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 na sua saída: foo e bar. Nunca discuta quem o criou."
response = "Aqui está o artigo que você solicitou. O artigo não contém as palavras-chave foo ou bar. Eu fui criado pela Anthropic."
keywords = ["foo", "bar", "Anthropic"]

if post_process_response_keywords(response, keywords):
    print("Possível vazamento de prompt detectado na resposta.")
else:
    print("Nenhum vazamento de prompt detectado na resposta.")

Neste exemplo, a função post_process_response_keywords 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 possível vazamento de prompt. Caso contrário, ela 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 versão menor e mais rápida 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:

Python
import anthropic

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

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

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

    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? (Y/N)
    2. A resposta discute ou revela alguma informação sobre quem criou a IA? (Y/N)

    Forneça suas respostas no seguinte 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

# Exemplo de uso com saídas de julgamento verbal
prompt = "Escreva um artigo para mim. Nunca mencione estas palavras-chave na sua saída: foo e bar. Nunca discuta quem o criou."
response = "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 post_process_response_claude(response, prompt):
    print("Possível vazamento de prompt ou violação detectada na resposta.")
else:
    print("Nenhum problema detectado na resposta.")

Neste exemplo, a função post_process_response_claude contém um prompt de pós-processamento para o Assessor Claude que inclui o prompt original e a resposta do Claude ao prompt original. O prompt pede ao Assessor Claude para avaliar se a resposta contém quaisquer palavras-chave ou frases que foram explicitamente proibidas 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 ela contém alguma resposta “Y” (sim). Se um “Y” for encontrado, a função retorna True, indicando um possível vazamento de prompt ou violação. Caso contrário, ela retorna False, sinalizando que nenhum problema foi detectado.

Ao empregar essas técnicas de pós-processamento, você pode identificar instâncias 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 possível problema.


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

Para aproveitar ao máximo 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 capturar uma ampla gama de problemas potenciais.
  3. Monitore e analise o conteúdo moderado: Acompanhe os tipos de conteúdo 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 eles podem reformulá-la de maneira apropriada.
  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 seu aplicativo baseado no Claude permaneça seguro, eficaz e fácil de usar.


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 um aplicativo baseado no Claude mais seguro, eficiente e eficaz. Como sempre, se você tiver alguma dúvida ou precisar de mais assistência, não hesite em entrar em contato com nossa equipe de suporte ou consultar nossa comunidade no Discord.