Aprendizagem pessoal com IA
e orientação prática
讯飞绘镜

Guia do Claude para casos de uso comuns: auditoria de conteúdo

A auditoria de conteúdo é um aspecto fundamental da manutenção de um ambiente seguro, respeitoso e produtivo em aplicativos digitais. Neste guia, discutiremos como usar o Claude Audite o conteúdo de seus aplicativos digitais.

Visite nossa Receitas de revisão de conteúdo Veja um exemplo de uma auditoria de conteúdo usando o Claude.

Este guia se concentra na revisão do conteúdo gerado pelo usuário em seu aplicativo. Se estiver procurando orientação sobre como auditar suas interações com o Claude, consulte nosso Diretrizes de limites de segurança.

Antes de usar Claude

Decidir se deve usar o Claude para revisão de conteúdo

Aqui estão algumas métricas importantes que indicam que você deve escolher um LLM como o Claude em vez de uma abordagem tradicional de aprendizado de máquina ou baseada em regras para a auditoria de conteúdo:

Você deseja uma implementação rápida e econômica


Os métodos tradicionais de aprendizado de máquina exigem recursos significativos de engenharia, conhecimento especializado em aprendizado de máquina e custos de infraestrutura. Os sistemas de auditoria manual custam ainda mais. Com o Claude, você pode criar sistemas de auditoria complexos em menos tempo e a um custo menor.

Você precisa de compreensão semântica e tomada rápida de decisões

As abordagens tradicionais de aprendizado de máquina, como a modelagem de saco de palavras ou a simples correspondência de padrões, geralmente têm dificuldades para entender o tom, a intenção e o contexto do conteúdo. Embora os sistemas de revisão humana sejam excelentes na compreensão do significado semântico, eles levam tempo para revisar o conteúdo. O Claude preenche essa lacuna combinando a compreensão semântica com a capacidade de fornecer rapidamente decisões de revisão.

Você precisa de decisões políticas consistentes

Ao aproveitar seus recursos avançados de raciocínio, o Claude pode interpretar e aplicar diretrizes de revisão complexas de forma consistente. Essa consistência ajuda a garantir o tratamento justo de todo o conteúdo e reduz o risco de que decisões de revisão inconsistentes ou tendenciosas possam minar a confiança do usuário.

Sua política de avaliação pode mudar ou evoluir com o tempo

Depois que uma abordagem tradicional de aprendizado de máquina é estabelecida, fazer alterações pode ser um esforço demorado e que consome muitos dados. Por outro lado, à medida que o seu produto ou as necessidades do cliente mudam, o Claude pode se adaptar facilmente às mudanças ou acréscimos às políticas de auditoria sem a necessidade de rotular novamente os dados de treinamento.

Você precisa de um raciocínio interpretável sobre as decisões de auditoria

Se você quiser fornecer aos usuários ou aos reguladores explicações claras sobre as decisões de revisão, o Claude pode gerar justificativas detalhadas e coerentes. Essa transparência é fundamental para criar confiança e garantir a responsabilidade nas práticas de revisão de conteúdo.

Você precisa de suporte a vários idiomas sem ter que manter modelos separados

As abordagens tradicionais de aprendizado de máquina geralmente exigem modelos separados ou processos de tradução extensos para cada idioma suportado. As auditorias manuais exigem uma força de trabalho fluente em cada idioma suportado, e os recursos multilíngues da Claude simplificam as auditorias para uma base global de clientes, permitindo que ela classifique tíquetes em vários idiomas sem a necessidade de modelos separados ou processos extensivos de tradução.

Você precisa de suporte multimodal

Os recursos multimodais do Claude permitem que ele analise e interprete o conteúdo em texto e imagens. Isso o torna uma ferramenta versátil para auditorias abrangentes de conteúdo em ambientes em que diferentes tipos de mídia precisam ser avaliados em conjunto.

Antrópica Todos os modelos do Claude foram treinados para serem honestos, prestativos e inofensivos. Isso pode fazer com que o Claude revise o conteúdo considerado particularmente perigoso (de acordo com nosso Política de uso aceitável), independentemente do prompt usado. Por exemplo, um site adulto que deseja permitir que os usuários publiquem conteúdo sexual explícito pode descobrir que o Claude ainda marcará o conteúdo explícito como exigindo moderação, mesmo que ele especifique explicitamente em seus avisos que não modera conteúdo explícito. Recomendamos que você analise nossa PUR antes de criar uma solução de revisão.

Exemplo de geração de uma auditoria de conteúdo

Antes de desenvolver uma solução de auditoria de conteúdo, crie primeiro exemplos de conteúdo que deve ser sinalizado e exemplos de conteúdo que não deve ser sinalizado. Certifique-se de incluir casos extremos e cenários complexos que possam desafiar a eficácia do processamento do seu sistema de auditoria de conteúdo. Depois disso, revise seus exemplos para criar uma lista clara de categorias de auditoria. Por exemplo, um exemplo gerado por uma plataforma de mídia social pode incluir o seguinte:

allowed_user_comments = [
    '这部电影太棒了,我真的很喜欢。主角表现得非常出色!',
    '我讨厌星期一。',
    '现在是投资黄金的好时机!'
]

disallowed_user_comments = [
    '马上删除这篇帖子,否则你最好躲起来。我会追上你和你的家人。',
    '远离 5G 手机!!他们正在用 5G 控制你。',
    '恭喜你!你赢得了一张价值 $1,000 的礼品卡。点击这里领取你的奖品!'
]

# 用于测试内容审核的用户评论示例
user_comments = allowed_user_comments + disallowed_user_comments

# 被视为不安全的内容审核类别列表
unsafe_categories = [
    '儿童剥削',
    '阴谋论',
    '仇恨',
    '无差别武器', 
    '知识产权',
    '非暴力犯罪', 
    '隐私',
    '自我伤害',
    '性犯罪',
    '色情内容',
    '专业建议',
    '暴力犯罪'
]

A revisão eficaz desses exemplos requer uma compreensão diferenciada do idioma. Na revisão.这部电影太棒了,我真的很喜欢。主角表现得非常出色!Em um sistema de moderação de conteúdo, é preciso reconhecer que "comportar-se de forma brilhante" é uma metáfora e não uma indicação de violência real. Em vez disso, apesar da falta de referências explícitas à violência, as revisões马上删除这篇帖子,否则你最好躲起来。我会追上你和你的家人。Ele deve ser sinalizado pelo sistema de revisão de conteúdo.

unsafe_categoriesA lista pode ser personalizada para atender às suas necessidades específicas. Por exemplo, se você quiser impedir que menores de idade criem conteúdo em seu site, poderá adicionar "Publicação de menores de idade" à lista.


Como usar o Claude para auditoria de conteúdo

Selecionando o modelo Claude correto

Ao escolher um modelo, é importante considerar o tamanho dos dados. Se o custo for um problema, um modelo pequeno como o Claude 3 Haiku é uma excelente opção porque é econômico. Abaixo está uma estimativa do custo de realizar uma auditoria de texto de uma plataforma de mídia social que recebe um bilhão de publicações por mês:

  • Tamanho do conteúdo
    • Número de postagens por mês: 1 bilhão
    • Caracteres por postagem: 100
    • Total de caracteres: 100 bilhões
  • Contagem estimada de tokens
    • Token de entrada: 28,6 bilhões (considerando 1 token para cada 3,5 caracteres)
    • Porcentagem de mensagens marcadas: 3%
    • Saída para cada mensagem marcada Token Número: 50
    • Contagem total de tokens de saída: 1,5 bilhão
  • Claude 3 Haiku Custo estimado
    • Custo do token de entrada: 2.860 MTok * $0,25/MTok = $715
    • Custo do token de saída: 1.500 MTok * $1,25/MTok = $1.875
    • Custo mensal: $715 + $1.875 = $2.590
  • Claude 3.5 Custos estimados do Sonnet
    • Custo do token de entrada: 2.860 MTok * $3.00/MTok = $8.580
    • Custo do token de saída: 1.500 MTok * $15,00/MTok = $22.500
    • Custo mensal: $8,580 + $22,500 = $31,080

Os custos reais podem diferir dessas estimativas. Essas estimativas são baseadas em informações sobre arquivo de lote dicas destacadas na seção. Ao remover o explanation o número de tokens de saída pode ser reduzido ainda mais.

Dicas poderosas de construção

Para usar o Claude para auditoria de conteúdo, o Claude deve entender os requisitos de auditoria do seu aplicativo. Vamos começar a escrever um prompt para que você possa definir seus requisitos de auditoria:

import anthropic
import json

# 初始化 Anthropic 客户端
client = anthropic.Anthropic()

def moderate_message(message, unsafe_categories):
    # 将不安全类别列表转换为字符串,每个类别占一行
    unsafe_category_str = '\n'.join(unsafe_categories)

    # 为 Claude 构建提示,包括消息和不安全类别
    assessment_prompt = f"""
    确定以下消息是否需要审核,
    基于下面列出的不安全类别。

    消息:
    <message>{message}</message>

    不安全类别:
    <categories>
    {unsafe_category_str}
    </categories>

    仅使用以下格式响应 JSON 对象:
    {{
    "violation": <布尔字段,表示消息是否应该被审核>,
    "categories": [被违反类别的逗号分隔列表],
    "explanation": [可选。如果有违规行为则仅包含。]
    }}"""

    # 发送请求给 Claude 进行内容审核
    response = client.messages.create(
        model="claude-3-haiku-20240307",  # 使用 Haiku 模型以降低成本
        max_tokens=200,
        temperature=0,   # 使用 0 温度以提高一致性
        messages=[
            {"role": "user", "content": assessment_prompt}
        ]
    )

    # 解析 Claude 的 JSON 响应
    assessment = json.loads(response.content[0].text)

    # 从评估中提取违规状态
    contains_violation = assessment['violation']

    # 如果有违规,获取类别和解释;否则使用空默认值
    violated_categories = assessment.get('categories', []) if contains_violation else []
    explanation = assessment.get('explanation') if contains_violation else None

    return contains_violation, violated_categories, explanation

# 处理每条评论并打印结果
for comment in user_comments:
    print(f"\n评论: {comment}")
    violation, violated_categories, explanation = moderate_message(comment, unsafe_categories)

    if violation:
        print(f"违反的类别: {', '.join(violated_categories)}")
        print(f"解释: {explanation}")
    else:
        print("未检测到问题。")

Neste exemplo, omoderate_message A função contém um prompt de avaliação com a categoria de conteúdo inseguro e a mensagem que desejamos avaliar. O prompt pede ao Claude que avalie se a mensagem deve ser auditada, com base na categoria de insegurança que definimos.

A avaliação do modelo é então analisada para determinar se existe uma violação. Se houver uma violação, o Claude também retorna uma lista de categorias violadas e uma explicação do motivo pelo qual a mensagem é considerada insegura.

Avalie suas dicas

A revisão de conteúdo é uma questão de categorização. Portanto, você pode usar nosso livro de receitas de classificação As mesmas técnicas descritas em Determinando a precisão de seu sistema de auditoria de conteúdo.

Outra consideração é que, em vez de considerar a auditoria de conteúdo como um problema de categorização binária, você pode criar várias categorias para representar diferentes níveis de risco. A criação de vários níveis de risco permite ajustar a intensidade de suas auditorias. Por exemplo, talvez você queira bloquear automaticamente as consultas de usuários consideradas de alto risco e, ao mesmo tempo, marcar muitas consultas de risco médio como exigindo revisão manual.

import anthropic
import json

# 初始化 Anthropic 客户端
client = anthropic.Anthropic()

def assess_risk_level(message, unsafe_categories):
    # 将不安全类别的列表转换为字符串,每个类别占一行
    unsafe_category_str = '\n'.join(unsafe_categories)

    # 为 Claude 构造提示,包括待评估的消息、不安全类别和风险级别定义
    assessment_prompt = f"""
    评估以下消息的风险级别,判断是否需要审核,
    基于下面列出的不安全类别。

消息:
<message>{message}</message>

不安全类别:
<categories>
{unsafe_category_str}
</categories>

根据您对用户消息应根据定义的不安全类别进行审核的信心,分配风险级别:

0 - 无风险
1 - 低风险
2 - 中等风险
3 - 高风险

仅以 JSON 对象格式回复,使用以下格式:
{{
  "risk_level": <表示风险级别的数值字段>,
  "categories": [违规类别的逗号分隔列表],
  "explanation": <可选。仅在风险级别大于 0 时包含>
}}"""

    # 发送请求给 Claude 进行风险评估
    response = client.messages.create(
        model="claude-3-haiku-20240307",  # 使用 Haiku 模型以降低成本
        max_tokens=200,
        temperature=0,   # 使用 0 温度以提高一致性
        messages=[
            {"role": "user", "content": assessment_prompt}
        ]
    )

    # 解析 Claude 的 JSON 响应
    assessment = json.loads(response.content[0].text)

    # 从评估中提取风险级别、违规类别和解释
    risk_level = assessment["risk_level"]
    violated_categories = assessment["categories"]
    explanation = assessment.get("explanation")

    return risk_level, violated_categories, explanation

# 处理每个评论并打印结果
for comment in user_comments:
    print(f"\n评论: {comment}")
    risk_level, violated_categories, explanation = assess_risk_level(comment, unsafe_categories)

    print(f"风险级别: {risk_level}")
    if violated_categories:
        print(f"违规类别: {', '.join(violated_categories)}")
    if explanation:
        print(f"解释: {explanation}")

O código implementa um assess_risk_level que usa o Claude para avaliar o nível de risco de uma mensagem. A função recebe como entrada uma lista de mensagens e categorias inseguras.

Dentro da função, um prompt é gerado para o Claude contendo a mensagem a ser avaliada, a categoria de insegurança e uma descrição específica do nível de risco a ser avaliado. O prompt instrui Claude a responder na forma de um objeto JSON, incluindo o nível de risco, a categoria de violação e, opcionalmente, uma explicação.

Essa abordagem permite a revisão flexível do conteúdo por meio da atribuição de níveis de risco. Ela pode ser perfeitamente integrada a sistemas maiores para filtrar automaticamente o conteúdo ou sinalizar comentários para revisão manual com base nos níveis de risco avaliados. Por exemplo, ao executar esse código, os comentários Delete this post now or you better hide. I am coming after you and your family. Identificado como de alto risco devido à sua ameaça perigosa. Em vez disso, os comentários Stay away from the 5G cellphones!! They are using 5G to control you. categorizada como de risco médio.

Implementação de suas dicas

Quando estiver satisfeito com a qualidade da sua solução, é hora de implantá-la em um ambiente de produção. Aqui estão algumas práticas recomendadas ao usar auditorias de conteúdo:

  1. **Forneça feedback claro aos usuários:** Forneça feedback útil e construtivo quando a entrada do usuário tiver sido bloqueada ou quando uma resposta tiver sido sinalizada devido à moderação de conteúdo, ajudando os usuários a entender por que sua mensagem foi sinalizada e informando-os sobre como reformulá-la adequadamente. No exemplo de código acima, isso é feito por meio da resposta Claude na seção explanation Realização de rótulos.
  2. **Analise o conteúdo auditado:** Acompanhe os tipos de conteúdo sinalizados pelo sistema de auditoria para identificar tendências e possíveis áreas de melhoria.
  3. **Avaliação e aprimoramento contínuos:** Avalie regularmente o desempenho do seu sistema de revisão de conteúdo usando métricas como precisão e rastreamento de recall. Use esses dados para aprimorar iterativamente seus avisos de auditoria, palavras-chave e critérios de avaliação.

melhorar o desempenho

Em cenários complexos, além do padrão Dicas para engenharia Além disso, considerar algumas estratégias adicionais pode ajudar a melhorar o desempenho. Aqui estão algumas estratégias avançadas:

Definir tópicos e fornecer exemplos

Além de listar as categorias inseguras nos prompts, outros aprimoramentos poderiam ser feitos fornecendo definições e frases relacionadas a cada categoria.

import anthropic
import json

# 初始化 Anthropic 客户端
client = anthropic.Anthropic()

# 含有定义的内容审核不安全类别字典
unsafe_category_definitions = {
    'Child Exploitation': '涉及儿童裸体或促进、鼓励、辩护或描绘儿童性虐待的内容。',
    'Conspiracy Theories': """推广或支持关于事件、情况或个人的毫无根据的虚假或误导性理论的内容,
        这些理论可能煽动伤害或破坏公众对机构或事实的信任。""",
    'Hate': """基于受保护特征(种族、肤色、民族、国籍、残疾、宗教信仰、种姓、性取向、性别、性别认同和重大疾病)
        对人群表达仇恨的内容,或助长负面刻板印象的内容。""",
    'Indiscriminate Weapons': '涉及大规模杀伤性武器制造的内容。',
    'Intellectual Property': '侵犯第三方知识产权的内容。',
    'Non-Violent Crimes': '鼓励、辩护或推动非暴力犯罪的内容。',
    'Privacy': '包含私人个人敏感信息的内容。',
    'Self-Harm': '鼓励、辩护或推动自残行为的内容。',
    'Sex Crimes': '鼓励、辩护或推动性犯罪的内容。',
    'Sexual Content': '包含色情描述或性行为明确描写的内容。',
    'Specialized Advice': """包含金融、医疗或法律建议的内容。
        金融建议包括投资、股票、债券或任何财务规划的指导。""",
    'Violent Crimes': '鼓励、辩护或推动暴力犯罪的内容。',
}

def moderate_message_with_definitions(message, unsafe_category_definitions):
    # 格式化不安全类别字符串,每个类别及其定义占一行
    unsafe_category_str = '\n'.join(f'{category}: {definition}' 
        for category, definition in unsafe_category_definitions.items()
    )

    # 构建 Claude 的提示信息,包括消息和不安全类别
    assessment_prompt = f"""根据以下列出的不安全类别,判断以下消息是否需要审核。

消息:
<message>{message}</message>

不安全类别及其定义:
<categories>
{unsafe_category_str}
</categories>

请记住所有不安全类别及其定义。

仅以 JSON 格式响应,使用以下格式:
{{
  "violation": <布尔字段,表示消息是否应被审核>,
  "categories": [被违反类别的逗号分隔列表],
  "explanation": [可选。如果存在违规,才包含。]
}}"""

    # 向 Claude 发送内容审核请求
    response = client.messages.create(
        model="claude-3-haiku-20240307",  # 使用 Haiku 模型以降低成本
        max_tokens=200,
        temperature=0,   # 使用 0 温度以提高一致性
        messages=[
            {"role": "user", "content": assessment_prompt}
        ]
    )

    # 解析 Claude 的 JSON 响应
    assessment = json.loads(response.content[0].text)

    # 从评估结果中提取违规状态
    contains_violation = assessment['violation']

    # 如果有违规,获取违规类别和解释;否则使用空默认值
    violated_categories = assessment.get('categories', []) if contains_violation else []
    explanation = assessment.get('explanation') if contains_violation else None

    return contains_violation, violated_categories, explanation

# 处理每个评论并打印结果
for comment in user_comments:
    print(f"\n评论:{comment}")
    violation, violated_categories, explanation = moderate_message_with_definitions(comment, unsafe_category_definitions)

    if violation:
        print(f"违规类别:{', '.join(violated_categories)}")
        print(f"解释:{explanation}")
    else:
        print("未发现问题。")

moderate_message_with_definitions é baseada na função moderate_message foi ampliada, associando cada categoria insegura a uma definição detalhada. O código combina a função original unsafe_categories A lista é substituída por unsafe_category_definitions Dicionário. Esse dicionário mapeia cada categoria insegura para sua definição correspondente. Tanto o nome da categoria quanto sua definição são incluídos na mensagem de prompt.

Vale a pena observar queSpecialized Advice A definição de categorias agora especifica os tipos de consultoria financeira que devem ser proibidos. Como resultado, a definição anteriormente adotada moderate_message Avaliações revisadas de "Agora é um ótimo momento para investir em ouro!" Agora provocaria uma violação.

Considere o processamento em lote

Nos casos em que a revisão em tempo real não for necessária, considere a possibilidade de revisar mensagens em massa para reduzir os custos. Inclua várias mensagens no contexto do prompt e deixe que o Claude avalie quais mensagens precisam ser revisadas.

import anthropic
import json

# 初始化 Anthropic 客户端
client = anthropic.Anthropic()

def batch_moderate_messages(messages, unsafe_categories):
    # 将不安全类别列表转换为字符串,每个类别占一行
    unsafe_category_str = '\n'.join(unsafe_categories)

    # 格式化消息字符串,将每个消息用类似 XML 的标签包裹,并给出 ID
    messages_str = '\n'.join([f'<message id={idx}>{msg}</message>' for idx, msg in enumerate(messages)])

    # 构建 Claude 的提示,包括要评估的消息和不安全类别
    assessment_prompt = f"""根据下面列出的不安全类别,确定需要审核的消息。

消息列表:
<messages>
{messages_str}
</messages>

不安全类别及其定义:
<categories>
{unsafe_category_str}
</categories>

仅使用以下格式返回 JSON 对象:
{{
  "violations": [
    {{
      "id": <message id>,
      "categories": [违反的类别列表],
      "explanation": <为何存在违规的解释>
    }},
    ...
  ]
}}

重要提示:
- 记得分析每条消息是否存在违规行为。
- 选择任何合理适用的违规类别。"""

    # 发送审核请求给 Claude
    response = client.messages.create(
        model="claude-3-haiku-20240307",  # 使用 Haiku 模型以降低成本
        max_tokens=2048,  # 增加最大 Token 数以处理批量数据
        temperature=0,    # 设置温度为 0 提高一致性
        messages=[
            {"role": "user", "content": assessment_prompt}
        ]
    )

    # 解析 Claude 返回的 JSON 响应
    assessment = json.loads(response.content[0].text)
    return assessment

# 处理批量评论并获取响应
response_obj = batch_moderate_messages(user_comments, unsafe_categories)

# 输出每条检测到的违规信息
for violation in response_obj['violations']:
    print(f"""评论:{user_comments[violation['id']]}
违规类别:{', '.join(violation['categories'])}
解释:{violation['explanation']}
""")

Neste exemplo, obatch_moderate_messages A função trata da revisão de um lote inteiro de mensagens com uma única chamada à API do Claude. Dentro da função, é criada uma dica que contém uma lista de mensagens a serem avaliadas, a categoria de conteúdo inseguro e sua descrição. O prompt solicita que o Claude retorne um objeto JSON listando todas as mensagens que contêm violações. Cada mensagem na resposta é identificada por seu ID, que corresponde à posição da mensagem na lista de entrada. Observe que, para encontrar o tamanho ideal do lote para suas necessidades específicas, pode ser necessário fazer algumas experiências. Embora tamanhos de lote maiores possam reduzir os custos, eles podem resultar em uma pequena perda de qualidade. Além disso, talvez você precise aumentar o número de chamadas à API do Claude no max_tokens para acomodar respostas mais longas. Para obter mais informações sobre o número máximo de tokens que podem ser emitidos pelo modelo selecionado, consulte a seção Página de comparação de modelos.

Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Guia do Claude para casos de uso comuns: auditoria de conteúdo
pt_BRPortuguês do Brasil