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.
A Anthropic treinou todos os modelos do Claude 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 = [
'O filme foi fantástico, eu realmente gostei. O personagem principal fez um ótimo trabalho!,
'Odeio segundas-feiras'.,
Agora é um bom momento para investir em ouro!
]
comentários de usuários não permitidos = [
'Apague esta postagem imediatamente ou é melhor você se esconder. Eu vou pegar você e sua família".,
'Fique longe dos telefones 5G! Eles estão controlando você com 5G'.,
'Parabéns! Você ganhou um cartão-presente no valor de $1.000. Clique aqui para reivindicar seu prêmio!
]
# Exemplo de um comentário de usuário usado para testar a moderação de conteúdo
user_comments = allowed_user_comments + disallowed_user_comments
# Lista de categorias de revisão de conteúdo consideradas inseguras
unsafe_categories = [
"Exploração infantil,
"Teoria da conspiração,
"Ódio,
'Armas indiferenciadas',
"Direitos de propriedade intelectual,
"Ofensas não violentas,
"Privacidade,
"Autoflagelação,
"Ofensas sexuais,
"Conteúdo pornográfico,
"Orientação profissional,
"Crime violento
]
A revisão eficaz desses exemplos requer uma compreensão diferenciada do idioma. Na revisão.Esse filme foi fantástico, eu realmente gostei. O personagem principal fez um ótimo trabalho!
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õesExclua esta postagem imediatamente ou é melhor se esconder. Eu o alcançarei e à sua família.
Ele deve ser sinalizado pelo sistema de revisão de conteúdo.
categorias inseguras
A 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 explicação
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:
importação antrópico
importação json
# Inicialização do Anthropic Client
cliente = anthropic.Anthropic()
def moderate_message(mensagem, unsafe_categories):
# Converta a lista de categorias inseguras em strings, uma linha por categoria
unsafe_category_str = '\n'.join(unsafe_categories)
# Dicas de construção para o Claude, incluindo mensagens e categorias de insegurança
assessment_prompt = f"""
Determine se as mensagens a seguir precisam ser revisadas, com base
com base nas categorias de insegurança listadas abaixo.
Mensagem:
<mensagem{mensagem}Categorias inseguras:
{unsafe_category_str}
Responda apenas a objetos JSON usando o seguinte formato:
{{
"violation": , {{
"categories": [lista separada por vírgulas de categorias violadas], {{ "explanation": [Opcional.
"explanation" (explicação): [Opcional. Incluir somente se houver uma violação].
}}"""
# Enviar solicitação ao Claude para revisão de conteúdo
response = client.messages.create(
model="claude-3-haiku-20240307", # usa modelos Haiku para reduzir custos
max_tokens=200,
temperatura=0, # usa temperatura 0 para melhorar a consistência
messages=[
{"função": "usuário", "content" (conteúdo): assessment_prompt}
]
)
# Analisando a resposta JSON do Claude
avaliação = json.loads(response.content[0].text)
# Extração de status de violação de avaliações
contains_violation = avaliação["violação]
# Se houver uma violação, obtenha a categoria e a explicação; caso contrário, use padrões vazios
violated_categories = assessment.get("categorias, []) se contains_violation mais []
explanation = assessment.get('explicação') se contains_violation mais Nenhum
retorno contains_violation, violated_categories, explanation (contém violação, categorias violadas, explicação)
# Processa cada comentário e imprime os resultados
para comentário em user_comments.
impressão(f"\n Comentários. {comentário}")
violation, violated_categories, explanation = moderate_message(comment, unsafe_categories)
se violação.
impressão(f "Categorias de violações. {', '.join(violated_categories)}")
impressão(f" Explicação. {explicação}")
mais:
impressão("Nenhum problema detectado".)
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.
importação antrópico
importação json
# Inicialização do Anthropic Client
cliente = anthropic.Anthropic()
def avaliar_nível_de_risco(mensagem, unsafe_categories):
# Converta a lista de categorias inseguras em strings, uma linha por categoria
unsafe_category_str = '\n'.join(unsafe_categories)
# Constrói avisos para o Claude, incluindo mensagens a serem avaliadas, categorias de insegurança e definições de nível de risco
assessment_prompt = f"""
Avalie o nível de risco das mensagens a seguir para determinar se elas precisam ser revisadas, com base nas categorias de insegurança listadas abaixo.
com base nas categorias de insegurança listadas abaixo.
Mensagem:
<mensagem{mensagem}Categorias inseguras:
{unsafe_category_str}
Atribui um nível de risco com base na sua confiança de que as mensagens do usuário devem ser auditadas de acordo com as categorias de insegurança definidas:
0 - sem risco
1 - Baixo risco
2 - Risco médio
3 - Alto risco
Para responder somente no formato de objeto JSON, use o seguinte formato:
{{
"risk_level": , "categories": [lista de categorias de violação separada por vírgulas], {{{
"categories": [lista de categorias de violação separada por vírgulas], {{ "risk_level": , <opcional.
"explanation":
}}"""
# Enviar solicitação à Claude para avaliação de risco
response = client.messages.create(
model="claude-3-haiku-20240307", # usa modelos Haiku para reduzir custos
max_tokens=200,
temperatura=0, # usa temperatura 0 para melhorar a consistência
messages=[
{"função": "usuário", "content" (conteúdo): assessment_prompt}
]
)
# Analisando a resposta JSON do Claude
avaliação = json.loads(response.content[0].text)
# Extraia o nível de risco, a categoria de violação e a explicação da avaliação
nível_de_risco = avaliação["risk_level"]
violated_categories = avaliação["categories" (categorias)explicação = assessment.get()
explicação = assessment.get("explicação")
retorno risk_level, violated_categories, explanation
# Processa cada comentário e imprime os resultados
para comentário em user_comments.
impressão(f"\n Comentários. {comentário}")
risk_level, violated_categories, explanation = assess_risk_level(comment, unsafe_categories)
impressão(f "Nível de risco. {risk_level}")
se violated_categories.
impressão(f "Tipo de violação. {', '.join(violated_categories)}")
se explicação.
impressão(f" Explicação. {explicação}")
O código implementa um avaliar_nível_de_risco
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 Apague esta postagem agora ou é melhor se esconder, pois estou indo atrás de você e de sua família.
Identificado como de alto risco devido à sua ameaça perigosa. Em vez disso, os comentários Fique longe dos celulares 5G!!!! Eles estão usando o 5G para controlar você.
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:
- **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
explicação
Realização de rótulos. - **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.
- **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.
importação antrópico
importação json
# Inicialização do Anthropic Client
cliente = anthropic.Anthropic()
# Content Audit Insecurity Category Dictionary with Definitions (Dicionário de categorias de insegurança de auditoria de conteúdo com definições)
unsafe_category_definitions = {
"Exploração de crianças: 'Conteúdo que envolva nudez infantil ou que promova, incentive, justifique ou retrate abuso sexual infantil'.,
'Teorias da conspiração': """Conteúdo que promove ou apóia teorias falsas ou enganosas sem fundamento sobre eventos, situações ou indivíduos.
Essas teorias podem incitar o dano ou minar a confiança do público em instituições ou fatos."""",
"Ódio: """" Com base em características protegidas (raça, cor, etnia, nacionalidade, deficiência, crença religiosa, casta, orientação sexual, gênero, identidade de gênero e doença significativa)
Conteúdo que expresse ódio contra grupos de pessoas ou que promova estereótipos negativos."""",
'Armas Indiscriminadas': 'Conteúdo envolvendo a fabricação de armas de destruição em massa'.,
"Propriedade intelectual: 'Conteúdo que infringe os direitos de propriedade intelectual de terceiros'.,
'Crimes não violentos': 'Conteúdo que incentiva, justifica ou promove crimes não violentos'.,
"Privacidade: 'Conteúdo que contém informações pessoais privadas e confidenciais'.,
"Autoagressão: Conteúdo que incentiva, justifica ou promove o comportamento autolesivo.,
'Crimes sexuais': 'Conteúdo que incentiva, justifica ou promove ofensas sexuais'.,
'Conteúdo sexual': 'Conteúdo que contém descrições pornográficas ou representações explícitas de comportamento sexual'.,
"Consultoria especializada: """Contém elementos de consultoria financeira, médica ou jurídica.
A orientação financeira inclui orientação sobre investimentos, ações, títulos ou qualquer planejamento financeiro."""",
"Crimes violentos: 'Conteúdo que incentiva, justifica ou promove crimes violentos'.,
}
def moderate_message_with_definitions (moderar mensagem com definições)(mensagem, unsafe_category_definitions (definições de categoria insegura)):
# Formatar sequências de categorias inseguras com uma linha para cada categoria e sua definição
unsafe_category_str = '\n'.join(f'{categoria}: {definição}'
para categoria, definição em unsafe_category_definitions.items()
)
# Dicas para construir o Claude, incluindo mensagens e categorias de insegurança
assessment_prompt = f"""Com base nas categorias de insegurança listadas abaixo, determine se as mensagens a seguir precisam ser revisadas.
Mensagem:{mensagem}Categorias inseguras e suas definições:
{unsafe_category_str}
Lembre-se de todas as categorias inseguras e suas definições.
Responda somente no formato JSON, usando o seguinte formato:
{{
"violation": , {{
"categories": [lista separada por vírgulas de categorias violadas], {{ "explanation": [opcional
"explanation": [Opcional. Incluir somente se houver uma violação].
}}"""
# envia solicitação de revisão de conteúdo para a Claude
response = client.messages.create(
model="claude-3-haiku-20240307", # usa modelos Haiku para reduzir custos
max_tokens=200,
temperatura=0, # usa temperatura 0 para melhorar a consistência
messages=[
{"função": "usuário", "content" (conteúdo): assessment_prompt}
]
)
# Analisando a resposta JSON do Claude
avaliação = json.loads(response.content[0].text)
# Extração do status de violação dos resultados da avaliação
contains_violation = avaliação["violação]
# Se houver uma violação, obtenha a categoria e a explicação da violação; caso contrário, use padrões vazios
violated_categories = assessment.get("categorias, []) se contains_violation mais []
explanation = assessment.get('explicação') se contains_violation mais Nenhum
retorno contains_violation, violated_categories, explanation (contém violação, categorias violadas, explicação)
# Processa cada comentário e imprime os resultados
para comentário em user_comments.
impressão(f"\n Comentários:{comentário}")
violation, violated_categories, explanation = moderate_message_with_definitions(comment, unsafe_category_definitions)
se violação.
impressão(f" Categoria da violação:{', '.join(violated_categories)}")
impressão(f" explicação:{explicação}")
mais:
impressão("Nenhum problema encontrado".)
moderate_message_with_definitions (moderar mensagem com definições)
é 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 categorias inseguras
A lista é substituída por unsafe_category_definitions (definições de categoria insegura)
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 queConsultoria especializada
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.
importação antrópico
importação json
# Inicialização do Anthropic Client
cliente = anthropic.Anthropic()
def batch_moderate_messages(mensagens, unsafe_categories):
# Converta a lista de categorias inseguras em strings, uma linha por categoria
unsafe_category_str = '\n'.join(unsafe_categories)
O # formata as sequências de mensagens, envolvendo cada mensagem em tags do tipo XML e fornecendo os IDs
messages_str = '\n'.join([f'<message id={idx}>{msg}' para idx, msg em enumerar(mensagens)])
# Dicas para criar o Claude, incluindo mensagens para avaliar e categorias de insegurança
assessment_prompt = f"""Com base nas categorias de insegurança listadas abaixo, identifique as mensagens que precisam ser revisadas.
Lista de mensagens:
{messages_str}
Categorias de insegurança e suas definições:
{unsafe_category_str}
Somente objetos JSON são retornados usando o seguinte formato:
{{
"violações": [
{{
"id": , "categories": [lista de categorias violadas], {{{
"categories": [lista de categorias violadas], {{ "explanation": , {{ "categories": [lista de categorias violadas], {{ "explanation": , }
"explanation":
}}, ...
...
]
}}
Dica importante:
- Lembre-se de analisar cada mensagem em busca de violações.
- Selecione qualquer categoria de violação que se aplique razoavelmente.""""
# envia solicitação de auditoria para Claude
response = client.messages.create(
model="claude-3-haiku-20240307", # usa modelos Haiku para reduzir custos
max_tokens=2048, # Aumente o número máximo de tokens para lidar com dados em massa.
temperatura=0, # O ajuste da temperatura para 0 melhora a consistência
messages=[
{"função": "usuário", "content" (conteúdo): assessment_prompt}
]
)
# Analisar a resposta JSON retornada pelo Claude
avaliação = json.loads(response.content[0].text)
retorno avaliação
# Processamento de comentários em massa e obtenção de respostas
response_obj = batch_moderate_messages(user_comments, unsafe_categories)
# Emite informações sobre cada violação detectada
para violação em Obj_resposta["violações]:
impressão(f"""Comentários:{user_comments[violation['id']]}
Categoria de violação:{', '.join(violation['categories'])}
Explicação:{violação['explicação']}
""")
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.