Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Incluye una barandilla con Converse API
Puedes usar una barandilla para proteger las aplicaciones de conversación que crees con las Converse. API Por ejemplo, si creas una aplicación de chat con ConverseAPI, puedes usar una barrera para bloquear el contenido inapropiado introducido por el usuario y el contenido inapropiado generado por el modelo. Para obtener información sobre las ConverseAPI, consulte. Mantén una conversación con las operaciones de Converse API
Temas
Llamar a las Converse API con barandas
Para usar una barandilla, debes incluir la información de configuración de la barandilla en las llamadas a las Converse o ConverseStreamen las operaciones (para las respuestas de streaming). Si lo desea, puede seleccionar un contenido específico en el mensaje que desee que evalúe la barandilla. Para obtener información sobre los modelos que puede utilizar con las barandillas y las Converse, consulte. API Modelos compatibles y características del modelo
Temas
Configuración de la barandilla para que funcione con Converse API
La información de configuración de la barandilla se especifica en el parámetro de entrada. guardrailConfig
La configuración incluye el ID y la versión de la barandilla que desea utilizar. También puede habilitar el rastreo de la barandilla, que proporciona información sobre el contenido que la barandilla ha bloqueado.
Con la Converse
operación, guardrailConfig
es un GuardrailConfigurationobjeto, como se muestra en el siguiente ejemplo.
{ "guardrailIdentifier": "
Guardrail ID
", "guardrailVersion": "Guardrail version
", "trace": "enabled" }
Si lo usasConverseStream
, pasas un GuardrailStreamConfigurationobjeto. Si lo desea, puede usar el streamProcessingMode
campo para especificar que desea que el modelo complete la evaluación de la barandilla antes de devolver los fragmentos de respuesta de la transmisión. O bien, puede hacer que el modelo responda de forma asíncrona mientras la barandilla continúa su evaluación en segundo plano. Para obtener más información, consulte Configurar el comportamiento de respuesta de streaming para filtrar el contenido.
Proteger un mensaje para evaluar el uso de contenido dañino APIs
Al pasar un mensaje (Mensaje) a un modelo, la barandilla evalúa el contenido del mensaje. Si lo desea, puede proteger el contenido seleccionado del mensaje especificando el campo guardContent
() GuardrailConverseContentBlock. La barandilla evalúa solo el contenido del guardContent
campo y no el resto del mensaje. Esto resulta útil para que la barandilla evalúe solo la mayoría de los mensajes de una conversación, como se muestra en el siguiente ejemplo.
[ { "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." } } } ] } ]
Otro uso es proporcionar un contexto adicional para un mensaje, sin que la barandilla evalúe ese 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 el guardContent
campo es análogo a usar etiquetas de entrada con y. InvokeModelInvokeModelWithResponseStream Para obtener más información, consulte Aplicar etiquetas a la entrada del usuario para filtrar el contenido.
Proteger un mensaje del sistema enviado a la Converse API
Puedes usar barandillas con las indicaciones del sistema que envíes a la Converse. API Para proteger un indicador del sistema, especifique el campo guardContent
(SystemContentBlock) en el indicador del sistema que va a enviar alAPI, como se muestra en el siguiente ejemplo.
[ { "guardContent": { "text": { "text": "Only respond with Welsh heavy metal songs." } } } ]
Si no proporciona el guardContent
campo, la barandilla no evaluará el mensaje de aviso del sistema.
El mensaje y el sistema indican el comportamiento de la barandilla
La forma en que la barandilla evalúa el guardContent
campo se comporta de forma diferente entre las indicaciones del sistema y los mensajes que se transmiten en el mensaje.
El indicador del sistema tiene el bloqueo Guardrail | El indicador del sistema no tiene el bloqueo Guardrail | |
---|---|---|
Los mensajes tienen el bloqueo Guardrail |
Sistema: Guardrail investiga el contenido del bloque Guardrail Mensajes: Guardrail investiga el contenido del bloque Guardrail |
Sistema: Guardrail no investiga nada Mensajes: Guardrail investiga el contenido del bloque Guardrail |
Los mensajes no tienen el bloqueo Guardrail |
Sistema: Guardrail investiga el contenido del bloque Guardrail Mensajes: Guardrail lo investiga todo |
Sistema: Guardrail no investiga nada Mensajes: Guardrail lo investiga todo |
Procesar la respuesta cuando se usa la Converse API
Cuando llamas a la operación Converse, la barandilla evalúa el mensaje que envías. Si la barandilla detecta contenido bloqueado, ocurre lo siguiente.
El
stopReason
campo de la respuesta está establecido en.guardrail_intervened
-
Si ha activado el rastreo, el rastreo estará disponible en el campo
trace
(ConverseTrace). ConConverseStream
, el rastreo está en los metadatos (ConverseStreamMetadataEvent) que devuelve la operación. -
El texto del contenido bloqueado que ha configurado en la barandilla se devuelve en el campo
output
(ConverseOutput). ConConverseStream
el contenido bloqueado, el texto aparece en el mensaje transmitido.
La siguiente respuesta parcial muestra el texto del contenido bloqueado y el rastro obtenido de la evaluación de la barandilla. La barandilla ha bloqueado el término Heavy metal en el mensaje.
{ "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 ejemplo para usar Converse con barandas API
En este ejemplo se muestra cómo proteger una conversación con las ConverseStream
operaciones Converse
y. El ejemplo muestra cómo evitar que una modelo cree una lista de reproducción que incluya canciones del género heavy metal.
Para proteger una conversación
-
Cree una barandilla siguiendo las instrucciones que se indican en. Crea una barandilla En el paso 6a, introduzca la siguiente información para crear un tema denegado:
-
Nombre: introduzca Heavy metal.
-
Definición del tema: ingrese Evite mencionar canciones que sean del género musical heavy metal.
-
Agrega ejemplos de frases: ingresa Crear una lista de reproducción de canciones de heavy metal.
En el paso 9, ingresa lo siguiente:
-
Se muestran los mensajes para las indicaciones bloqueadas: introduce Lo siento, no puedo responder a las preguntas sobre la música heavy metal.
-
Mensajes para respuestas bloqueadas: ingresa Lo sentimos, el modelo generó una respuesta que mencionaba música heavy metal.
Puede configurar otras opciones de barandilla, pero no es obligatorio para este ejemplo.
-
-
Cree una versión de la barandilla siguiendo las instrucciones de. Crea una versión de una barandilla
-
En los siguientes ejemplos de código (Converse y ConverseStream), defina las siguientes variables:
guardrail_id
— El ID de la barandilla que creó en el paso 1.guardrail_version
— La versión de la barandilla que creó en el paso 2.text
— UsaCreate a playlist of heavy metal songs.
-
Ejecute los ejemplos de código. El resultado debe mostrar la evaluación de la barandilla y el mensaje de salida.
Text: Sorry, I can't answer questions about heavy metal music.
La evaluación de la entrada de la barandilla muestra que el modelo detectó el término metal pesado en el mensaje de entrada. -
(Opcional) Compruebe que la barandilla bloquea el texto inapropiado que genera el modelo cambiando el valor de
text
a Listar todos los géneros de música rock. . Vuelva a ejecutar los ejemplos. Deberías ver una evaluación del resultado en la respuesta.