

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Per-request etichettatura dei metadati
<a name="cost-mgmt-request-metadata"></a>

I metadati della richiesta consentono di allegare tag chiave-valore a singole chiamate di inferenza Amazon Bedrock sull'endpoint. [`bedrock-runtime`](endpoints.md) [I tag vengono registrati con la richiesta nei log di invocazione del modello.](model-invocation-logging.md) È quindi possibile attribuire l'utilizzo a un team, un'applicazione, un ambiente, un esperimento o qualsiasi altra dimensione che varia a seconda della chiamata. Non è necessario creare o configurare in anticipo alcuna risorsa: ogni chiamata può contenere un set diverso di tag.

I metadati della richiesta sono supportati nelle seguenti [`bedrock-runtime`](endpoints.md)API:
+ [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**  
I metadati della richiesta non sono supportati sull'endpoint. [`bedrock-mantle`](endpoints.md) Per un'attribuzione che fluisce direttamente in AWS Cost Explorer e AWS Cost and Usage Reports come tag di allocazione dei costi, vedere [Profili di inferenza delle applicazioni](cost-mgmt-application-inference-profiles.md)[Progetti](cost-mgmt-projects.md), o. [WorkSpace](cost-mgmt-workspaces.md)

## Come funzionano i metadati delle richieste
<a name="cost-mgmt-request-metadata-how-it-works"></a>

Puoi allegare i metadati a una richiesta in modo diverso a seconda dell'API che chiami:
+ **InvokeModel e InvokeModelWithResponseStream** — Imposta l'intestazione `X-Amzn-Bedrock-Request-Metadata` HTTP sulla richiesta. Il valore è un oggetto JSON le cui chiavi e valori sono stringhe scelte dall'utente.
+ **Converse e ConverseStream** — Imposta il `requestMetadata` campo nel corpo della richiesta. Per ulteriori informazioni, consulta [requestMetadata](conversation-inference.md#converse-request-metadata).

I metadati della richiesta vengono registrati nei log di invocazione del modello solo quando la registrazione è abilitata nel luogo in cui viene effettuata la Regione AWS chiamata. Per le istruzioni di configurazione, vedere. [Monitora la chiamata del modello utilizzando CloudWatch Logs e Amazon S3](model-invocation-logging.md)

L'esempio seguente mostra una InvokeModel richiesta che contrassegna la chiamata con un nome del team, un ambiente e un identificatore del test case:

```
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."}]
}
```

La stessa intestazione è supportata su: 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**  
Quando firmi le richieste con AWS Signature Version 4 (SigV4), includetele `X-Amzn-Bedrock-Request-Metadata` nell'elenco. `SignedHeaders` Le richieste che omettono l'intestazione dall'elenco firmato vengono rifiutate con un. `InvalidSignatureException` AWS Gli SDK che espongono i metadati della richiesta come parametro gestiscono questa situazione automaticamente.

L'esempio seguente imposta i metadati della richiesta con l' AWS SDK for Python (Boto3) su una chiamata Converse. L'SDK include automaticamente i metadati nelle intestazioni. SigV4-signed 

```
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",
    },
)
```

## Limits
<a name="cost-mgmt-request-metadata-limits"></a>

I metadati della richiesta hanno i seguenti limiti, che si applicano sia all'`X-Amzn-Bedrock-Request-Metadata`header (InvokeModel, InvokeModelWithResponseStream) che al campo `requestMetadata` body (Converse,): ConverseStream
+ Massimo 16 inserimenti di metadati per richiesta.
+ Chiavi: massimo 256 caratteri.
+ Valori: massimo 256 caratteri.
+ Caratteri consentiti: un insieme limitato di caratteri alfanumerici e di punteggiatura.

Le richieste che superano questi limiti vengono rifiutate con un errore di convalida.

## Dove vengono visualizzati i metadati della richiesta
<a name="cost-mgmt-request-metadata-in-logs"></a>

I metadati della richiesta vengono visualizzati nei log di invocazione del modello Amazon Bedrock nel campo di primo livello. `requestMetadata` La seguente voce di registro abbreviata mostra il campo per una chiamata: 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": { "...": "..." }
}
```

Puoi filtrare e aggregare i log in base ai campi di metadati in Amazon CloudWatch Logs Insights, agli strumenti di query di Amazon S3 come Amazon Athena o in qualsiasi altro sistema che legge i log delle chiamate.

## Calcolare i costi dai log
<a name="cost-mgmt-request-metadata-getting-cost"></a>

I metadati delle richieste e il conteggio dei token vengono scritti nei log di invocazione del modello, non nella fattura. Esistono due modi per trasformarli in costi.

Calcola in base al conteggio dei token  
Ogni record di registro contiene i conteggi dei token di input, output, cache-read e cache-write per la richiesta. Moltiplicali per le tariffe per token nei [prezzi di Amazon Bedrock](https://aws.amazon.com/bedrock/pricing/) e raggruppali in base a qualsiasi tag di metadati. Si tratta di un approccio basato sulla singola richiesta e quasi in tempo reale, ma si tratta di una stima. La carta tariffaria viene mantenuta a voi. Non riflette sconti, impegni, prezzi in lotti, piano gratuito o produttività prevista, a meno che non vengano modellati.  
La seguente query di CloudWatch Logs Insights totalizza i token per utente e modello quando i log delle chiamate vengono consegnati 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
```
Per i log distribuiti ad Amazon S3, la seguente query di Amazon Athena stima i costi per team. Sostituisci le tariffe per token con le tariffe correnti [dei prezzi di Amazon Bedrock](https://aws.amazon.com/bedrock/pricing/) e modifica i riferimenti di tabella e colonna in modo che corrispondano alla definizione della tabella. AWS Glue   

```
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;
```

Riconciliati con CUR  
Unisci i registri delle chiamate al report sui AWS costi e sull'utilizzo per ottenere totali accurati in fattura. Né il CUR classico né il CUR 2.0 includono un identificatore per richiesta nelle voci. Entrambi i costi aggregano per tipo di utilizzo nell'arco di un'ora o un giorno. Considerate questo percorso come una riconciliazione tra modello e tipo di utilizzo, con i log che forniscono i dettagli relativi alle singole richieste riportate di seguito.

**Nota**  
I metadati della richiesta e i tag di sessione IAM sono meccanismi diversi. I metadati della richiesta sono impostati per chiamata e variano in base alla richiesta. Viene inserito nei registri delle chiamate. I tag di sessione IAM sono associati per sessione e vengono visualizzati solo come dati di fatturazione aggregati in AWS Cost Explorer e CUR. Per l'attribuzione per utente e per prompt, utilizzate i metadati della richiesta o un'identità per utente nell'ARN anziché i tag di sessione.

## Considerazioni
<a name="cost-mgmt-request-metadata-considerations"></a>
+ I valori dei metadati della richiesta vengono registrati solo quando la registrazione delle chiamate del modello è abilitata nelle chiamate. Regione AWS Se la registrazione non è configurata, la richiesta ha comunque esito positivo ma i metadati non vengono conservati.
+ I metadati della richiesta non vengono forniti come tag di allocazione AWS dei costi e non vengono visualizzati in AWS Cost Explorer o CUR. Per analizzare i costi in base alla dimensione dei metadati, unisci i registri delle chiamate al rapporto sui costi e sull'utilizzo attivo. `requestId` [In alternativa, aggrega i conteggi dei token direttamente dai record di log e moltiplicali per le tariffe per token nei prezzi di Amazon Bedrock.](https://aws.amazon.com/bedrock/pricing/) Per un'attribuzione che fluisce in modo nativo verso Cost Explorer e CUR, usa[Profili di inferenza delle applicazioni](cost-mgmt-application-inference-profiles.md), [Progetti](cost-mgmt-projects.md) o. [WorkSpace](cost-mgmt-workspaces.md)
+ Scegliete chiavi stabili e a bassa cardinalità come`team`, `environment``feature`, o `experiment` per analisi facili da aggregare. Utilizza valori di cardinalità più elevata, come gli identificatori di sessione o di traccia, solo quando devi tracciare singole chiamate.
+ Evita di inserire informazioni di identificazione personale (PII), credenziali o altri dati sensibili nei metadati della richiesta. I valori vengono archiviati nei log di invocazione del modello e in qualsiasi sistema che li legge.
+ I metadati della richiesta vengono forniti per chiamata e non vengono applicati da Amazon Bedrock. Le richieste che lo omettono continuano ad avere esito positivo e non esiste alcuna politica sul lato dei servizi che lo richiedano. Per garantire la copertura all'interno di un'organizzazione, imposta i metadati della richiesta in un client condiviso o in un gateway LLM. Per un'attribuzione sempre presente senza codice per chiamata, usa. [Attribuzione principale IAM](cost-mgmt-iam-principal-tracking.md) Acquisisce automaticamente l'identità del chiamante.
+ I metadati della richiesta funzionano insieme agli altri metodi di tracciamento dell'utilizzo di Amazon Bedrock. Puoi utilizzarli [Attribuzione principale IAM](cost-mgmt-iam-principal-tracking.md) per l'attribuzione per identità e [Profili di inferenza delle applicazioni](cost-mgmt-application-inference-profiles.md) per i tag di allocazione dei costi a livello di risorsa sullo stesso carico di lavoro.