View a markdown version of this page

Per-request etiquetado de metadatos - Amazon Bedrock

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.

Per-request etiquetado de metadatos

Los metadatos de solicitud le permiten adjuntar etiquetas de valores clave a las llamadas de inferencia individuales de Amazon Bedrock en el punto final. bedrock-runtime Las etiquetas se registran junto con la solicitud en los registros de invocación del modelo. A continuación, puede atribuir el uso a un equipo, aplicación, entorno, experimento o cualquier otra dimensión que varíe en función de la llamada. No es necesario crear o configurar ningún recurso con antelación; cada llamada puede incluir un conjunto diferente de etiquetas.

Los metadatos de solicitud son compatibles con las siguientes bedrock-runtimeAPI:

nota

El bedrock-mantlepunto final no admite los metadatos de solicitud. Para ver la atribución que fluye directamente a AWS Cost Explorer y a los informes de AWS costo y uso como etiquetas de asignación de costosPerfiles de inferencia de aplicaciones, consulteProyectos, oEspacios de trabajo.

Cómo funcionan los metadatos de las solicitudes

Los metadatos se adjuntan a una solicitud de forma diferente en función de la API a la que se llame:

  • InvokeModel y InvokeModelWithResponseStream — Establece el encabezado X-Amzn-Bedrock-Request-Metadata HTTP de la solicitud. El valor es un objeto JSON cuyas claves y valores son cadenas que tú eliges.

  • Converse y ConverseStream: establezca el requestMetadata campo en el cuerpo de la solicitud. Para obtener más información, consulte requestMetadata.

Los metadatos de la solicitud se registran en los registros de invocación del modelo solo cuando el registro está habilitado en el Región de AWS lugar donde se realiza la llamada. Para obtener instrucciones de configuración, consulteSupervise la invocación de modelos mediante CloudWatch Logs y Amazon S3.

El siguiente ejemplo muestra una InvokeModel solicitud que etiqueta la llamada con un nombre de equipo, un entorno y un identificador de caso de prueba:

POST /model/anthropic.claude-3-haiku-20240307-v1:0/invoke HTTP/1.1 Content-Type: application/json X-Amzn-Bedrock-Request-Metadata: {"team": "orchestrator", "environment": "preview-test", "test_case": "invoke_model_sync"} { "anthropic_version": "bedrock-2023-05-31", "max_tokens": 50, "messages": [{"role": "user", "content": "Say hello in one word."}] }

El mismo encabezado es compatible con InvokeModelWithResponseStream:

POST /model/anthropic.claude-3-haiku-20240307-v1:0/invoke-with-response-stream HTTP/1.1 Content-Type: application/json X-Amzn-Bedrock-Request-Metadata: {"team": "orchestrator", "environment": "preview-test", "test_case": "invoke_model_stream"} { "anthropic_version": "bedrock-2023-05-31", "max_tokens": 50, "messages": [{"role": "user", "content": "Say hello in one word."}] }
importante

Cuando firme solicitudes con la versión 4 de AWS Signature (SiGv4), inclúyalas X-Amzn-Bedrock-Request-Metadata en la SignedHeaders lista. Las solicitudes que omiten el encabezado de la lista firmada se rechazan con un. InvalidSignatureException AWS Los SDK que exponen los metadatos de la solicitud como parámetro lo gestionan automáticamente.

El siguiente ejemplo establece los metadatos de la solicitud con el AWS SDK para Python (Boto3) en una llamada de Converse. El SDK incluye automáticamente los metadatos en los SigV4-signed encabezados.

import boto3 client = boto3.client("bedrock-runtime") response = client.converse( modelId="us.anthropic.claude-opus-4-8", # or an inference profile ARN messages=[{"role": "user", "content": [{"text": "Summarize this ticket."}]}], requestMetadata={ "user": "alice@example.com", "team": "growth", "feature": "summarizer", "environment": "prod", }, )

Límites

Los metadatos de la solicitud tienen los siguientes límites, que se aplican tanto al X-Amzn-Bedrock-Request-Metadata encabezado (InvokeModel, InvokeModelWithResponseStream) como al campo del requestMetadata cuerpo (Converse, ConverseStream):

  • Máximo 16 entradas de metadatos por solicitud.

  • Claves: 256 caracteres como máximo.

  • Valores: 256 caracteres como máximo.

  • Caracteres permitidos: conjunto restringido de caracteres alfanuméricos y de puntuación.

Las solicitudes que superen estos límites se rechazan con un error de validación.

Dónde aparecen los metadatos de la solicitud

Los metadatos de la solicitud aparecen en los registros de invocación del modelo Amazon Bedrock, en el campo de nivel superiorrequestMetadata. La siguiente entrada de registro abreviada muestra el campo de una llamada: InvokeModel

{ "schemaType": "ModelInvocationLog", "schemaVersion": "1.0", "timestamp": "2024-01-15T12:00:00Z", "accountId": "123456789012", "region": "us-east-1", "requestId": "abcd1234-5678-efgh-ijkl-mnopqrstuvwx", "operation": "InvokeModel", "modelId": "anthropic.claude-3-haiku-20240307-v1:0", "requestMetadata": { "team": "orchestrator", "environment": "preview-test", "test_case": "invoke_model_sync" }, "input": { "...": "..." }, "output": { "...": "..." } }

Puede filtrar y agregar registros por campos de metadatos en Amazon CloudWatch Logs Insights, en las herramientas de consulta de Amazon S3, como Amazon Athena, o en cualquier otro sistema que lea los registros de invocación.

Cómo obtener el costo de sus registros

Los metadatos de las solicitudes y los recuentos de tokens se escriben en los registros de invocación del modelo, no en la factura. Hay dos maneras de convertirlos en costos.

Calcule a partir de recuentos de fichas

Cada registro contiene los recuentos de tokens de entrada, salida, lectura y escritura en caché de la solicitud. Multiplíquelos por las tarifas por token en los precios de Amazon Bedrock y agrúpelos por cualquier etiqueta de metadatos. Este enfoque es por mensaje y prácticamente en tiempo real, pero se trata de una estimación. Mantienes la tabla de tarifas. No refleja los descuentos, los compromisos, los precios por lotes, el nivel gratuito ni el rendimiento aprovisionado a menos que los modeles.

La siguiente consulta de CloudWatch Logs Insights totaliza los tokens por usuario y modelo cuando los registros de invocación se envían a Logs: CloudWatch

fields requestMetadata.user as user, modelId, input.inputTokenCount as inTokens, output.outputTokenCount as outTokens | stats sum(inTokens) as totalInput, sum(outTokens) as totalOutput, count() as calls by user, modelId | sort totalInput desc

En el caso de los registros enviados a Amazon S3, la siguiente consulta de Amazon Athena calcula el costo por equipo. Sustituya las tarifas por token por las tarifas actuales de los precios de Amazon Bedrock y ajuste las referencias de las tablas y columnas para que coincidan con la definición de AWS Glue la tabla.

SELECT requestMetadata.team AS team, modelId, SUM(input.inputTokenCount) AS input_tokens, SUM(output.outputTokenCount) AS output_tokens, SUM(input.inputTokenCount) * 0.000015 AS est_input_cost, SUM(output.outputTokenCount) * 0.000075 AS est_output_cost FROM bedrock_invocation_logs GROUP BY requestMetadata.team, modelId ORDER BY est_input_cost DESC;
Reconciliate con CUR

Une tus registros de invocación a tu informe de AWS costos y uso para obtener los totales exactos de las facturas. Ni el CUR clásico ni el CUR 2.0 incluyen un identificador por solicitud en sus líneas de pedido. Ambos agregan el costo por tipo de uso durante una hora o un día. Considere esta ruta como una conciliación según el modelo y el tipo de uso, y los registros proporcionan los detalles por solicitud que aparecen más abajo.

nota

Los metadatos de solicitud y las etiquetas de sesión de IAM son mecanismos diferentes. Los metadatos de la solicitud se establecen por llamada y varían según la solicitud. Aterriza en tus registros de invocación. Las etiquetas de sesión de IAM están vinculadas por sesión y solo aparecen como datos de facturación agregados en AWS Cost Explorer y CUR. Para la atribución por usuario y por mensaje, utilice metadatos de solicitud o una identidad por usuario en el ARN en lugar de etiquetas de sesión.

Consideraciones

  • Los valores de los metadatos de las solicitudes se registran solo cuando el registro de invocaciones del modelo está habilitado en las llamadas. Región de AWS Si el registro no está configurado, la solicitud sigue siendo correcta, pero los metadatos no se conservan.

  • Los metadatos de la solicitud no se entregan como una etiqueta de asignación de AWS costos y no aparecen en AWS Cost Explorer ni en CUR. Para analizar los costos por dimensión de metadatos, combine sus registros de invocación con su informe de costos y uso en. requestId Como alternativa, agregue los recuentos de tokens directamente de los registros y multiplíquelos por las tarifas por token en los precios de Amazon Bedrock. Para la atribución que fluye de forma nativa a Cost Explorer y CURPerfiles de inferencia de aplicaciones, Proyectos utilice o. Espacios de trabajo

  • Elija claves estables y de baja cardinalidadteam, como, environmentfeature, o experiment para análisis que sean fáciles de agregar. Utilice valores de cardinalidad más altos, como identificadores de sesión o rastreo, solo cuando necesite rastrear llamadas individuales.

  • Evita incluir información de identificación personal (PII), credenciales u otros datos confidenciales en los metadatos de las solicitudes. Los valores se almacenan en los registros de invocación del modelo y en cualquier sistema que lea esos registros.

  • Los metadatos de la solicitud se proporcionan por llamada y Amazon Bedrock no los aplica. Las solicitudes que los omiten siguen siendo válidas y no existe una política del lado del servicio que lo exija. Para garantizar la cobertura en toda la organización, configure los metadatos de las solicitudes en un cliente compartido o en una pasarela LLM. Para una atribución que esté siempre presente sin el código por llamada, usa. Atribución principal de IAM Captura automáticamente la identidad de la persona que llama.

  • Los metadatos de solicitud funcionan junto con los demás métodos de seguimiento del uso de Amazon Bedrock. Puede utilizarlos Atribución principal de IAM para la atribución por identidad y Perfiles de inferencia de aplicaciones para las etiquetas de asignación de costes a nivel de recursos en la misma carga de trabajo.