As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Inclua uma grade de proteção com o Converse API
Você pode usar uma grade de proteção para proteger os aplicativos de conversação que você cria com o Converse. API Por exemplo, se você criar um aplicativo de bate-papo com o ConverseAPI, poderá usar uma grade de proteção para bloquear conteúdo impróprio inserido pelo usuário e conteúdo impróprio gerado pelo modelo. Para obter informações sobre o ConverseAPI, consulteConverse com as operações da Converse API.
Tópicos
Chamando o Converse API com grades de proteção
Para usar uma grade de proteção, você inclui informações de configuração da grade de proteção em chamadas para o Converse ou ConverseStream(para respostas de streaming) em operações. Opcionalmente, você pode selecionar conteúdo específico na mensagem que você deseja que a grade de proteção avalie. Para obter informações sobre os modelos que você pode usar com grades de proteção e o ConverseAPI, consulte. Modelos e recursos do modelo compatíveis
Tópicos
Configurando o corrimão para funcionar com o Converse API
Você especifica as informações de configuração para a grade de proteção no parâmetro guardrailConfig
de entrada. A configuração inclui o ID e a versão do guarda-corpo que você deseja usar. Você também pode ativar o rastreamento da grade de proteção, que fornece informações sobre o conteúdo que a grade de proteção bloqueou.
Com a Converse
operação, guardrailConfig
é um GuardrailConfigurationobjeto, conforme mostrado no exemplo a seguir.
{ "guardrailIdentifier": "
Guardrail ID
", "guardrailVersion": "Guardrail version
", "trace": "enabled" }
Se você usarConverseStream
, você passa um GuardrailStreamConfigurationobjeto. Opcionalmente, você pode usar o streamProcessingMode
campo para especificar que deseja que o modelo conclua a avaliação do guardrail, antes de retornar partes da resposta de streaming. Ou você pode fazer com que o modelo responda de forma assíncrona enquanto a grade de proteção continua sua avaliação em segundo plano. Para obter mais informações, consulte Configure o comportamento da resposta de streaming para filtrar o conteúdo.
Protegendo uma mensagem para avaliar o uso de conteúdo nocivo APIs
Quando você passa uma mensagem (Mensagem) para um modelo, a grade de proteção avalia o conteúdo da mensagem. Opcionalmente, você pode proteger o conteúdo selecionado na mensagem especificando o campo guardContent
(GuardrailConverseContentBlock). O guardrail avalia somente o conteúdo no guardContent
campo e não o resto da mensagem. Isso é útil para que o guardrail avalie somente a maioria das mensagens em uma conversa, conforme mostrado no exemplo a seguir.
[ { "role": "user", "content": [ { "text": "Create a playlist of 2 pop songs." } ] }, { "role": "assistant", "content": [ { "text": " Sure! Here are two pop songs:\n1. \"Bad Habits\" by Ed Sheeran\n2. \"All Of The Lights\" by Kanye West\n\nWould you like to add any more songs to this playlist? " } ] }, { "role": "user", "content": [ { "guardContent": { "text": { "text": "Create a playlist of 2 heavy metal songs." } } } ] } ]
Outro uso é fornecer contexto adicional para uma mensagem, sem que a grade de proteção avalie esse contexto adicional.
[ { "role": "user", "content": [ { "text": "Only answer with a list of songs." }, { "guardContent": { "text": { "text": "Create a playlist of heavy metal songs." } } } ] } ]
nota
Usar o guardContent
campo é análogo ao uso de tags de entrada com InvokeModele. InvokeModelWithResponseStream Para obter mais informações, consulte Aplique tags à entrada do usuário para filtrar o conteúdo.
Protegendo um prompt do sistema enviado ao Converse API
Você pode usar grades de proteção com os avisos do sistema que você envia para o Converse. API Para proteger um prompt do sistema, especifique o campo guardContent
(SystemContentBlock) no prompt do sistema que você passa para oAPI, conforme mostrado no exemplo a seguir.
[ { "guardContent": { "text": { "text": "Only respond with Welsh heavy metal songs." } } } ]
Se você não fornecer o guardContent
campo, a grade de proteção não avaliará a mensagem de alerta do sistema.
Comportamento imediato da mensagem e do sistema
A forma como o guardContent
campo de avaliação do guardrail se comporta de forma diferente entre os prompts do sistema e as mensagens que você passa na mensagem.
O prompt do sistema tem um bloco Guardrail | O prompt do sistema não tem o bloco Guardrail | |
---|---|---|
As mensagens têm bloqueio de guardrail |
Sistema: o Guardrail investiga o conteúdo no bloco do Guardrail Mensagens: o Guardrail investiga o conteúdo no bloco do Guardrail |
Sistema: o Guardrail não investiga nada Mensagens: o Guardrail investiga o conteúdo no bloco do Guardrail |
As mensagens não têm bloqueio de guardrail |
Sistema: o Guardrail investiga o conteúdo no bloco do Guardrail Mensagens: o Guardrail investiga tudo |
Sistema: o Guardrail não investiga nada Mensagens: o Guardrail investiga tudo |
Processando a resposta ao usar o Converse API
Quando você chama a operação Converse, a grade de proteção avalia a mensagem que você envia. Se a grade de proteção detectar conteúdo bloqueado, acontece o seguinte.
O
stopReason
campo na resposta está definido comoguardrail_intervened
.-
Se você ativou o rastreamento, o rastreamento estará disponível no campo
trace
(ConverseTrace). ComConverseStream
, o rastreamento está nos metadados (ConverseStreamMetadataEvent) que a operação retorna. -
O texto do conteúdo bloqueado que você configurou na grade de proteção é retornado no campo
output
(ConverseOutput). ComConverseStream
o conteúdo bloqueado, o texto está na mensagem transmitida.
A resposta parcial a seguir mostra o texto do conteúdo bloqueado e o traço da avaliação do guardrail. A grade de proteção bloqueou o termo Heavy metal na mensagem.
{ "output": { "message": { "role": "assistant", "content": [ { "text": "Sorry, I can't answer questions about heavy metal music." } ] } }, "stopReason": "guardrail_intervened", "usage": { "inputTokens": 0, "outputTokens": 0, "totalTokens": 0 }, "metrics": { "latencyMs": 721 }, "trace": { "guardrail": { "inputAssessment": { "3o06191495ze": { "topicPolicy": { "topics": [ { "name": "Heavy metal", "type": "DENY", "action": "BLOCKED" } ] }, "invocationMetrics": { "guardrailProcessingLatency": 240, "usage": { "topicPolicyUnits": 1, "contentPolicyUnits": 0, "wordPolicyUnits": 0, "sensitiveInformationPolicyUnits": 0, "sensitiveInformationPolicyFreeUnits": 0, "contextualGroundingPolicyUnits": 0 }, "guardrailCoverage": { "textCharacters": { "guarded": 39, "total": 72 } } } } } } } }
Código de exemplo para usar o Converse API com grades de proteção
Este exemplo mostra como proteger uma conversa com as ConverseStream
operações Converse
e. O exemplo mostra como impedir que um modelo crie uma playlist que inclua músicas do gênero heavy metal.
Para proteger uma conversa
-
Crie uma grade de proteção seguindo as instruções em. Crie uma grade de proteção Na etapa 6a, insira as seguintes informações para criar um tópico negado:
-
Nome — Digite Heavy metal.
-
Definição de tópico - Digite Evite mencionar músicas do gênero musical heavy metal.
-
Adicione exemplos de frases — Digite Crie uma playlist de músicas de heavy metal.
Na etapa 9, insira o seguinte:
-
Mensagens mostradas para solicitações bloqueadas — Digite Desculpe, não consigo responder perguntas sobre música heavy metal.
-
Mensagens para respostas bloqueadas — Digite Desculpe, o modelo gerou uma resposta que mencionava música heavy metal.
Você pode configurar outras opções de guardrail, mas isso não é necessário para este exemplo.
-
-
Crie uma versão do guarda-corpo seguindo as instruções em. Crie uma versão de uma grade de proteção
-
Nos exemplos de código a seguir (Converse e ConverseStream), defina as seguintes variáveis:
guardrail_id
— O ID da grade de proteção que você criou na etapa 1.guardrail_version
— A versão do guarda-corpo que você criou na etapa 2.text
— UsoCreate a playlist of heavy metal songs.
-
Execute os exemplos de código. A saída deve exibir a avaliação da grade de proteção e a mensagem de saída.
Text: Sorry, I can't answer questions about heavy metal music.
A avaliação da entrada do guardrail mostra que o modelo detectou o termo heavy metal na mensagem de entrada. -
(Opcional) Teste se a grade de proteção bloqueia o texto impróprio que o modelo gera alterando o valor de
text
para Listar todos os gêneros de rock. . Execute os exemplos novamente. Você deve ver uma avaliação de saída na resposta.