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á.
Per-request marcação de metadados
Os metadados de solicitação permitem que você anexe tags de valor-chave a chamadas de inferência individuais do Amazon Bedrock no endpoint. bedrock-runtime As tags são registradas com a solicitação nos registros de invocação do modelo. Em seguida, você pode atribuir o uso a uma equipe, aplicativo, ambiente, experimento ou qualquer outra dimensão que varie por chamada. Não há nenhum recurso para criar ou configurar com antecedência — cada chamada pode conter um conjunto diferente de tags.
Os metadados de solicitação são compatíveis com as seguintes bedrock-runtimeAPIs:
nota
Os metadados de solicitação não são compatíveis com o bedrock-mantleendpoint. Para a atribuição que flui diretamente para o AWS Cost Explorer e os Relatórios de AWS Custos e Uso como tags de alocação de custos, consultePerfis de inferência de aplicações, Projetos ou. Espaços de trabalho
Como funcionam os metadados da solicitação
Você anexa metadados a uma solicitação de forma diferente, dependendo da API que você chama:
-
InvokeModel e InvokeModelWithResponseStream — Defina o cabeçalho
X-Amzn-Bedrock-Request-MetadataHTTP na solicitação. O valor é um objeto JSON cujas chaves e valores são cadeias de caracteres que você escolhe. -
Converse e ConverseStream — Defina o
requestMetadatacampo no corpo da solicitação. Para obter mais informações, consulte requestMetadata.
Os metadados da solicitação são registrados nos registros de invocação do modelo somente quando o registro está ativado no local em Região da AWS que a chamada é feita. Para obter instruções de configuração, consulteMonitore a invocação do modelo usando CloudWatch Logs e Amazon S3.
O exemplo a seguir mostra uma InvokeModel solicitação que marca a chamada com um nome de equipe, um ambiente e um identificador de caso de teste:
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."}] }
O mesmo cabeçalho é suportado em 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
Ao assinar solicitações com o AWS Signature Version 4 (SigV4), inclua X-Amzn-Bedrock-Request-Metadata SignedHeaders na lista. Solicitações que omitem o cabeçalho da lista assinada são rejeitadas com umInvalidSignatureException. AWS Os SDKs que expõem os metadados da solicitação como um parâmetro lidam com isso automaticamente.
O exemplo a seguir define metadados de solicitação com o AWS SDK para Python (Boto3) em uma chamada Converse. O SDK inclui os metadados nos SigV4-signed cabeçalhos para você.
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", }, )
Limites
Os metadados da solicitação têm os seguintes limites, que se aplicam tanto ao X-Amzn-Bedrock-Request-Metadata cabeçalho (InvokeModel, InvokeModelWithResponseStream) quanto ao campo do requestMetadata corpo (Converse, ConverseStream):
Máximo de 16 entradas de metadados por solicitação.
Teclas: máximo de 256 caracteres.
Valores: máximo de 256 caracteres.
Caracteres permitidos: um conjunto restrito de caracteres alfanuméricos e de pontuação.
Solicitações que excedem esses limites são rejeitadas com um erro de validação.
Onde os metadados da solicitação aparecem
Os metadados da solicitação aparecem nos registros de invocação do modelo Amazon Bedrock no campo de nível superior. requestMetadata A seguinte entrada de registro abreviada mostra o campo de uma chamada: 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": { "...": "..." } }
Você pode filtrar e agregar registros por campos de metadados no Amazon CloudWatch Logs Insights, nas ferramentas de consulta do Amazon S3, como o Amazon Athena, ou em qualquer outro sistema que leia registros de invocação.
Obtendo o custo de seus registros
Os metadados da solicitação e as contagens de tokens são gravados nos registros de invocação do modelo, não na fatura. Há duas maneiras de transformá-las em custo.
- Calcule a partir de contagens de tokens
-
Cada registro de log carrega as contagens de tokens de entrada, saída, leitura em cache e gravação em cache da solicitação. Multiplique-as pelas taxas por token nos preços do Amazon Bedrock
e agrupe por qualquer tag de metadados. Essa abordagem ocorre por solicitação e quase em tempo real, mas é uma estimativa. Você mantém a tabela de tarifas. Ele não reflete descontos, compromissos, preços em lotes, nível gratuito ou taxa de transferência provisionada, a menos que você os modele. A consulta a seguir do CloudWatch Logs Insights totaliza tokens por usuário e modelo quando os registros de invocação são entregues ao 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 descPara registros entregues ao Amazon S3, a seguinte consulta do Amazon Athena estima o custo por equipe. Substitua as taxas por token pelas taxas atuais dos preços do Amazon Bedrock
e ajuste as referências da tabela e da coluna para corresponder à sua definição de AWS Glue tabela. 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; - Reconcilie-se com o CUR
-
Junte seus registros de invocação ao seu Relatório de AWS Custo e Uso para obter totais precisos na fatura. Nem o CUR clássico nem o CUR 2.0 incluem um identificador por solicitação em seus itens de linha. Ambos agregam o custo por tipo de uso em uma hora ou um dia. Trate esse caminho como uma reconciliação no modelo e no tipo de uso, com os registros fornecendo os detalhes por solicitação abaixo.
nota
Os metadados de solicitação e as tags de sessão do IAM são mecanismos diferentes. Os metadados da solicitação são definidos por chamada e variam de acordo com a solicitação. Ele cai em seus registros de invocação. As tags de sessão do IAM são vinculadas por sessão e aparecem somente como dados de faturamento agregados no AWS Cost Explorer e no CUR. Para atribuição por usuário e por prompt, use metadados de solicitação ou uma identidade por usuário no ARN em vez de tags de sessão.
Considerações
-
Os valores dos metadados da solicitação são registrados somente quando o registro de invocação do modelo está ativado na chamada. Região da AWS Se o registro não estiver configurado, a solicitação ainda será bem-sucedida, mas os metadados não serão retidos.
-
Os metadados da solicitação não são entregues como uma etiqueta de alocação de AWS custos e não aparecem no AWS Cost Explorer ou no CUR. Para analisar os custos por dimensão de metadados, junte seus registros de invocação ao seu Relatório de custo e uso em.
requestIdComo alternativa, agregue as contagens de tokens diretamente dos registros de log e multiplique pelas taxas por token nos preços do AmazonBedrock. Para atribuição que flui nativamente para o Cost Explorer e o CUR, usePerfis de inferência de aplicações, ou. Projetos Espaços de trabalho -
Escolha chaves estáveis e de baixa cardinalidade
team, como,environmentfeature, ouexperimentpara análises fáceis de agregar. Use valores de cardinalidade mais altos, como identificadores de sessão ou rastreamento, somente quando precisar rastrear chamadas individuais. -
Evite colocar informações de identificação pessoal (PII), credenciais ou outros dados confidenciais nos metadados da solicitação. Os valores são armazenados nos registros de invocação do modelo e em qualquer sistema que leia esses registros.
-
Os metadados da solicitação são fornecidos por chamada e não são aplicados pelo Amazon Bedrock. As solicitações que o omitem ainda são bem-sucedidas e não há uma política de serviço que exija isso. Para garantir a cobertura em toda a organização, defina os metadados da solicitação em um cliente compartilhado ou gateway LLM. Para atribuição que está sempre presente sem código por chamada, use. Atribuição principal do IAM Ele captura a identidade do chamador automaticamente.
-
Os metadados de solicitação funcionam junto com os outros métodos de rastreamento de uso do Amazon Bedrock. Você pode usar Atribuição principal do IAM para atribuição por identidade e Perfis de inferência de aplicações para tags de alocação de custos em nível de recurso na mesma carga de trabalho.