

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
<a name="cost-mgmt-request-metadata"></a>

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`](endpoints.md) As tags são registradas com a solicitação nos registros de [invocação do modelo](model-invocation-logging.md). 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-runtime`](endpoints.md)APIs:
+ [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)
+ [InvokeModelWithResponseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithResponseStream.html)
+ [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html)
+ [ConverseStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ConverseStream.html)

**nota**  
Os metadados de solicitação não são compatíveis com o [`bedrock-mantle`](endpoints.md)endpoint. 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, consulte[Perfis de inferência de aplicações](cost-mgmt-application-inference-profiles.md), [Projetos](cost-mgmt-projects.md) ou. [Espaços de trabalho](cost-mgmt-workspaces.md)

## Como funcionam os metadados da solicitação
<a name="cost-mgmt-request-metadata-how-it-works"></a>

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-Metadata` HTTP 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 `requestMetadata` campo no corpo da solicitação. Para obter mais informações, consulte [requestMetadata](conversation-inference.md#converse-request-metadata).

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, consulte[Monitore a invocação do modelo usando CloudWatch Logs e Amazon S3](model-invocation-logging.md).

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 um`InvalidSignatureException`. 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
<a name="cost-mgmt-request-metadata-limits"></a>

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
<a name="cost-mgmt-request-metadata-in-logs"></a>

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
<a name="cost-mgmt-request-metadata-getting-cost"></a>

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](https://aws.amazon.com/bedrock/pricing/) 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 desc
```
Para 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](https://aws.amazon.com/bedrock/pricing/) 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
<a name="cost-mgmt-request-metadata-considerations"></a>
+ 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. `requestId` Como alternativa, agregue as contagens de tokens diretamente dos registros de log e multiplique pelas taxas por token nos preços do [Amazon](https://aws.amazon.com/bedrock/pricing/) Bedrock. Para atribuição que flui nativamente para o Cost Explorer e o CUR, use[Perfis de inferência de aplicações](cost-mgmt-application-inference-profiles.md), ou. [Projetos](cost-mgmt-projects.md) [Espaços de trabalho](cost-mgmt-workspaces.md)
+ Escolha chaves estáveis e de baixa cardinalidade`team`, como, `environment``feature`, ou `experiment` para 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](cost-mgmt-iam-principal-tracking.md) 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](cost-mgmt-iam-principal-tracking.md) para atribuição por identidade e [Perfis de inferência de aplicações](cost-mgmt-application-inference-profiles.md) para tags de alocação de custos em nível de recurso na mesma carga de trabalho.