

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à.

# Guida introduttiva dettagliata all'utilizzo della console e dell'API
<a name="detailed-getting-started"></a>

Contenuti in arrivo.

# Introduzione alla console Amazon Bedrock
<a name="getting-started-console"></a>

Questa sezione descrive come utilizzare i [playground](playgrounds.md) della AWS console per inviare un messaggio di testo a un Amazon Bedrock Foundation Model (FM) e generare una risposta con testo o immagine. Prima di eseguire i seguenti esempi, devi verificare di aver soddisfatto i seguenti prerequisiti:

**Prerequisiti**
+ Disponi Account AWS e disponi delle autorizzazioni per accedere a un ruolo in quell'account con le autorizzazioni necessarie per Amazon Bedrock. In caso contrario, segui le fasi in [Guida introduttiva](getting-started.md).
+ Assicurati di essere nella Regione Stati Uniti orientali (Virginia settentrionale) (us-east-1). Per cambiare Regioni, seleziona il nome della Regione in alto a destra nella console, accanto al ruolo IAM. Quindi, seleziona Stati Uniti orientali (Virginia settentrionale) (us-east-1).

**Topics**
+ [Esplorazione del playground di testo](#getting-started-text)
+ [Esplorazione del playground di immagini](#getting-started-image)

## Esplorazione del playground di testo
<a name="getting-started-text"></a>

Nell’esempio seguente viene illustrato come utilizzare il playground di testo:

1. Accedi a Console di gestione AWS con un'identità IAM che dispone delle autorizzazioni per utilizzare la console Amazon Bedrock. Quindi, apri la console Amazon Bedrock in [https://console.aws.amazon.com/bedrock.](https://console.aws.amazon.com/bedrock)

1. Dal riquadro di navigazione, scegli **Testo** in **Playground**.

1. Scegli **Seleziona modello** e seleziona un provider e un modello. Per questo esempio, verrà selezionato **Amazon Titan Text G1 - Lite**. Quindi, scegli **Applica**.

1. Seleziona un prompt predefinito sotto il pannello di testo oppure inserisci un prompt nel pannello di testo, ad esempio **Describe the purpose of a "hello world" program in one line**.

1. Scegli **Esegui** per eseguire l’inferenza sul modello. Il testo generato viene visualizzato sotto il prompt nel pannello di testo.

## Esplorazione del playground di immagini
<a name="getting-started-image"></a>

Nell’esempio seguente viene illustrato come utilizzare il playground di immagini.

1. Accedi a Console di gestione AWS con un'identità IAM che dispone delle autorizzazioni per utilizzare la console Amazon Bedrock. Quindi, apri la console Amazon Bedrock in [https://console.aws.amazon.com/bedrock.](https://console.aws.amazon.com/bedrock)

1. Nel riquadro di navigazione a sinistra, scegli **Immagine** in **Playground**.

1. Scegli **Seleziona modello** e seleziona un provider e un modello. Per questo esempio, verrà selezionato **Amazon Titan Image Generator G1 V1**. Quindi, scegli **Applica**.

1. Seleziona un prompt predefinito sotto il pannello di testo oppure inserisci un prompt nel pannello di testo, ad esempio **Generate an image of happy cats**.

1. Nel riquadro **Configurazioni**, modifica il **Numero di immagini** in **1**.

1. Scegli **Esegui** per eseguire l’inferenza sul modello. L’immagine generata viene visualizzata sopra il prompt.

# Iniziare a utilizzare l’API
<a name="getting-started-api"></a>

Questa sezione descrive come configurare il tuo ambiente per effettuare richieste Amazon Bedrock tramite l' AWS API. AWS offre i seguenti strumenti per semplificare la tua esperienza:
+ AWS Command Line Interface (AWS CLI)
+ AWS SDKs
+  SageMaker Notebook Amazon AI

Per iniziare a utilizzare l’API, sono necessarie le credenziali per concedere l’accesso programmatico. Se le seguenti sezioni ti riguardano, espandile e segui le istruzioni riportate. In caso contrario, procedi con le sezioni rimanenti.

## Sono nuovo a AWS
<a name="gs-api-new-to-aws"></a>

Se non ne hai uno Account AWS, completa i seguenti passaggi per crearne uno.

**Per iscriverti a un Account AWS**

1. Apri la [https://portal.aws.amazon.com/billing/registrazione.](https://portal.aws.amazon.com/billing/signup)

1. Segui le istruzioni online.

   Nel corso della procedura di registrazione riceverai una telefonata o un messaggio di testo e ti verrà chiesto di inserire un codice di verifica attraverso la tastiera del telefono.

   Quando ti iscrivi a un Account AWS, *Utente root dell'account AWS*viene creato un. L’utente root dispone dell’accesso a tutte le risorse e tutti i Servizi AWS nell’account. Come best practice di sicurezza, assegna l’accesso amministrativo a un utente e utilizza solo l’utente root per eseguire [attività che richiedono l’accesso di un utente root](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks).

AWS ti invia un'email di conferma dopo il completamento della procedura di registrazione. In qualsiasi momento, puoi visualizzare l'attività corrente del tuo account e gestirlo accedendo a [https://aws.amazon.com/](https://aws.amazon.com/)e scegliendo **Il mio account**.

**Proteggi il tuo Utente root dell'account AWS**

1.  Accedi [Console di gestione AWS](https://console.aws.amazon.com/)come proprietario dell'account scegliendo **Utente root** e inserendo il tuo indirizzo Account AWS email. Nella pagina successiva, inserisci la password.

   Per informazioni sull’accesso utilizzando un utente root, consulta la pagina [Accedere come utente root](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial) nella *Guida per l’utente di Accedi ad AWS *.

1. Abilita l’autenticazione a più fattori (MFA) per l’utente root.

   Per istruzioni, consulta [Abilitare un dispositivo MFA virtuale per l'utente Account AWS root (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html) nella Guida per l'*utente IAM*.

## Devo installare AWS CLI o un SDK AWS
<a name="gs-api-cli-sdk-install"></a>

Per installare AWS CLI, segui i passaggi in [Installare o aggiornare alla versione più recente di AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

Per installare un AWS SDK, seleziona la scheda corrispondente al linguaggio di programmazione che desideri utilizzare in [Tools to Build on AWS](https://aws.amazon.com/developer/tools/). AWS i kit di sviluppo software (SDKs) sono disponibili per molti linguaggi di programmazione popolari. Ogni SDK fornisce un'API, esempi di codice e documentazione che semplificano agli sviluppatori la creazione di applicazioni nella loro lingua preferita. SDKs esegue automaticamente attività utili per te, come:
+ Firma crittografata delle richieste di servizio
+ Richieste di ripetizione
+ Gestione delle risposte di errore

## Ottenere le credenziali per concedere l’accesso programmatico
<a name="gs-grant-program-access"></a>

Gli utenti necessitano dell'accesso programmatico se desiderano interagire con l' AWS Console di gestione AWS esterno di. AWS offre diverse opzioni, a seconda dei problemi di sicurezza.

**Nota**  
Per una step-by-step guida alla generazione di una chiave API da utilizzare per accedere rapidamente all'API Amazon Bedrock, consulta[Nozioni di base sulle chiavi API di Amazon Bedrock: generazione di una chiave di 30 giorni ed esecuzione della prima chiamata API](getting-started-api-keys.md).  
Per ulteriori informazioni sui requisiti di sicurezza, continua con questa sezione.

Il modo per concedere l'accesso programmatico dipende dal tipo di utente che accede. AWS

Per fornire agli utenti l’accesso programmatico, scegli una delle seguenti opzioni.


****  

| Quale principale necessita dell’accesso programmatico? | Per | Come | 
| --- | --- | --- | 
| Utenti IAM | Limita la durata delle credenziali a lungo termine per firmare le richieste programmatiche a AWS CLI,, AWS SDKs o. AWS APIs |  Segui le istruzioni per l’interfaccia che desideri utilizzare. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/bedrock/latest/userguide/getting-started-api.html)  | 
| Ruoli IAM | Utilizza credenziali temporanee per firmare le richieste programmatiche a AWS CLI, AWS SDKs, o. AWS APIs | Seguendo le istruzioni riportate in [Utilizzo delle credenziali temporanee con le AWS risorse nella Guida per](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html) l'utente IAM. | 
|  Identità della forza lavoro (Utenti gestiti nel centro identità IAM)  | Utilizza credenziali temporanee per firmare le richieste programmatiche a AWS CLI,, AWS SDKs o. AWS APIs |  Segui le istruzioni per l’interfaccia che desideri utilizzare. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/bedrock/latest/userguide/getting-started-api.html)  | 

## Come configurare le chiavi di accesso per un utente IAM
<a name="create-user-time-bound"></a>

Se decidi di utilizzare le chiavi di accesso per un utente IAM, AWS ti consigliamo di impostare una scadenza per l'utente IAM includendo una policy in linea restrittiva.

**Importante**  
Presta attenzione ai seguenti avvertimenti:  
**NON** utilizzare le credenziali root del tuo account per accedere alle risorse. AWS Queste credenziali forniscono un accesso illimitato all’account e sono difficili da revocare.
**NON** inserire chiavi di accesso letterali o informazioni sulle credenziali nei file dell’applicazione. In caso contrario, rischi di esporre accidentalmente le credenziali se, per esempio, carichi il progetto in repository pubblici.
**NON** includere file che contengono credenziali nell’area del progetto.
Gestisci le chiavi di accesso in modo sicuro. Non fornire le chiavi di accesso a parti non autorizzate, neppure per contribuire a [trovare gli identificatori di account](https://docs.aws.amazon.com/general/latest/gr/acct-identifiers.html). In questo modo, potresti concedere a qualcuno l'accesso permanente al tuo account.
Tieni presente che tutte le credenziali archiviate nel file delle AWS credenziali condivise vengono archiviate in testo non crittografato.

Per ulteriori dettagli, vedere [Procedure ottimali per la gestione delle chiavi di AWS accesso](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html) in. Riferimenti generali di AWS

**Creare un utente IAM**

1. Nella Console di gestione AWS home page, seleziona il servizio IAM o accedi alla console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel riquadro di navigazione, seleziona **Utenti**, quindi seleziona **Crea utente**.

1. Segui le indicazioni nella console IAM per configurare un utente programmatico (senza accesso a Console di gestione AWS) e senza autorizzazioni.

**Limitare l’accesso dell’utente a una finestra a tempo limitato**

Le chiavi di accesso create per un utente IAM sono credenziali a lungo termine. Per garantire che queste credenziali scadano nel caso vengano utilizzate impropriamente, puoi assegnarvi un limite di tempo creando una policy in linea che specifichi una data dopo la quale le chiavi non saranno più valide.

1. Apri l’utente IAM appena creato. Nella scheda **Autorizzazioni**, scegli **Aggiungi autorizzazioni**, poi **Crea policy inline**.

1. Nell’editor JSON, specifica le seguenti autorizzazioni. Per utilizzare questa policy, sostituisci il valore del timestamp `aws:CurrentTime` nella policy di esempio con la data di fine scelta.
**Nota**  
IAM consiglia di limitare le chiavi di accesso a 12 ore.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Deny",
         "Action": "*",
         "Resource": "*",
         "Condition": {
           "DateGreaterThan": {
             "aws:CurrentTime": "2024-01-01T00:00:000"
           }
         }
       }
     ]
   }
   ```

------

**Creare una chiave di accesso**

1. Nella pagina **Dettagli dell’utente**, seleziona la scheda **Credenziali di sicurezza**. Nella sezione **Chiavi di accesso**, scegliere **Crea chiave di accesso**.

1. Indica che intendi utilizzare queste chiavi di accesso come **Altro** e seleziona **Crea chiave di accesso**.

1. Nella pagina **Recupera chiave di accesso**, scegli **Mostra** per rivelare il valore della chiave di accesso segreta dell’utente. Puoi copiare le credenziali o scaricare un file .csv.

**Importante**  
Quando non hai più bisogno di questo utente IAM, ti consigliamo di rimuoverlo e, in linea con le [best practice di AWS sicurezza](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials), di richiedere agli utenti umani di utilizzare credenziali temporanee tramite [AWS IAM Identity](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) Center durante l'accesso. AWS

## Collegare autorizzazioni Amazon Bedrock a un utente o a un ruolo
<a name="gs-api-br-permissions"></a>

Dopo aver configurato le credenziali per l’accesso programmatico, devi configurare le autorizzazioni per un utente o un ruolo IAM affinché possano accedere a una serie di operazioni legate ad Amazon Bedrock. Per configurare queste autorizzazioni, procedi come segue:

1. Nella Console di gestione AWS home page, seleziona il servizio IAM o accedi alla console IAM all'indirizzo. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. Seleziona **Utenti** o **Ruoli**, poi seleziona l’utente o il ruolo desiderato.

1. Nella scheda **Autorizzazioni**, scegli **Aggiungi autorizzazioni**, quindi scegli **Aggiungi policy AWS gestita**. Scegli la policy gestita [AmazonBedrockFullAccess]() AWS .

1. Per consentire all’utente o al ruolo di abbonarsi ai modelli, scegli **Crea policy inline**, poi specifica le seguenti autorizzazioni nell’editor JSON:

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
         {
             "Sid": "MarketplaceBedrock",
             "Effect": "Allow",
             "Action": [
                 "aws-marketplace:ViewSubscriptions",
                 "aws-marketplace:Unsubscribe",
                 "aws-marketplace:Subscribe"
             ],
             "Resource": "*"
         }
     ]
   }
   ```

------

## Prova a effettuare chiamate API verso Amazon Bedrock
<a name="gs-try-bedrock"></a>

Dopo aver soddisfatto tutti i prerequisiti, seleziona uno dei seguenti argomenti per provare a effettuare richieste di invocazione di modelli utilizzando i modelli Amazon Bedrock:

**Topics**
+ [Ottenere le credenziali per concedere l’accesso programmatico](#gs-grant-program-access)
+ [Collegare autorizzazioni Amazon Bedrock a un utente o a un ruolo](#gs-api-br-permissions)
+ [Prova a effettuare chiamate API verso Amazon Bedrock](#gs-try-bedrock)
+ [Nozioni di base sulle chiavi API di Amazon Bedrock: generazione di una chiave di 30 giorni ed esecuzione della prima chiamata API](getting-started-api-keys.md)
+ [Esegui esempi di richieste API Amazon Bedrock con AWS Command Line Interface](getting-started-api-ex-cli.md)
+ [Esegui esempi di richieste API Amazon Bedrock tramite l' AWS SDK for Python (Boto3)](getting-started-api-ex-python.md)
+ [Esegui esempi di richieste API Amazon Bedrock utilizzando un notebook Amazon SageMaker AI](getting-started-api-ex-sm.md)

# Nozioni di base sulle chiavi API di Amazon Bedrock: generazione di una chiave di 30 giorni ed esecuzione della prima chiamata API
<a name="getting-started-api-keys"></a>

In questo tutorial viene illustrato come creare una chiave API Amazon Bedrock a lungo termine con scadenza a 30 giorni e come utilizzarla per effettuare una semplice chiamata API [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) utilizzando Python. Questo è il modo più veloce per iniziare a sperimentare con Amazon Bedrock senza impostare credenziali complesse AWS .

**avvertimento**  
Le chiavi API a lungo termine sono consigliate solo per l’esplorazione e lo sviluppo di Amazon Bedrock. Per le applicazioni di produzione, utilizza [alternative alle chiavi di accesso a lungo termine](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds-programmatic-access.html#security-creds-alternatives-to-long-term-access-keys), come i ruoli IAM o le credenziali temporanee.

Segui questi passaggi per creare una chiave API Amazon Bedrock a lungo termine con scadenza a 30 giorni:

1. Accedi a Console di gestione AWS con un'identità IAM che dispone delle autorizzazioni per utilizzare la console Amazon Bedrock. Quindi, apri la console Amazon Bedrock in [https://console.aws.amazon.com/bedrock.](https://console.aws.amazon.com/bedrock)

1. Nel riquadro di navigazione a sinistra, seleziona **Chiavi API**.

1. Nella scheda **Chiavi API a lungo termine**, scegli **Genera chiavi API a lungo termine**.

1. Nella sezione **Scadenza della chiave API**, seleziona **30 giorni**.

1. Scegliere **Generate (Genera)**. La chiave generata fornisce le autorizzazioni per eseguire le azioni principali di Amazon Bedrock, come definito nella policy allegata [AmazonBedrockLimitedAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockLimitedAccess).

1. Copia la chiave API generata e archiviala in modo sicuro. Tale chiave servirà nella fase successiva.
**Importante**  
La chiave API viene visualizzata solo una volta. Assicurati di copiarla e salvarla prima di chiudere la finestra di dialogo. Ricorda che la chiave API scadrà tra 30 giorni. Per generarne una nuova, segui le stesse fasi o valuta il passaggio a metodi di autenticazione più sicuri per l’uso continuativo.

1. Imposta la chiave API come variabile di ambiente sostituendola *\$1\$1api-key\$1* con il valore della chiave API generata e usala per generare una risposta con il metodo che preferisci:

------
#### [ Python ]

   ```
   import boto3
   import os
   
   # Set the API key as an environment variable
   os.environ['AWS_BEARER_TOKEN_BEDROCK'] = "${api-key}"
   
   # Create the Bedrock client
   client = boto3.client(
       service_name="bedrock-runtime",
       region_name="us-east-1"
   )
   
   # Define the model and message
   model_id = "us.anthropic.claude-3-5-haiku-20241022-v1:0"
   messages = [{"role": "user", "content": [{"text": "Hello! Can you tell me about Amazon Bedrock?"}]}]
   
   # Make the API call
   response = client.converse(
       modelId=model_id,
       messages=messages,
   )
   
   # Print the response
   print(response['output']['message']['content'][0]['text'])
   ```

------
#### [ HTTP client using Python ]

   ```
   import requests
   
   url = "https://bedrock-runtime.us-east-1.amazonaws.com/model/us.anthropic.claude-3-5-haiku-20241022-v1:0/converse"
   
   payload = {
       "messages": [
           {
               "role": "user",
               "content": [{"text": "Hello"}]
           }
       ]
   }
   
   headers = {
       "Content-Type": "application/json",
       "Authorization": "Bearer ${api-key}"
   }
   
   response = requests.request("POST", url, json=payload, headers=headers)
   
   print(response.text)
   ```

------
#### [ HTTP request using cURL ]

   ```
   curl -X POST "https://bedrock-runtime.us-east-1.amazonaws.com/model/us.anthropic.claude-3-5-haiku-20241022-v1:0/converse" \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer ${api-key}" \
     -d '{
       "messages": [
           {
               "role": "user",
               "content": [{"text": "Hello"}]
           }
       ]
     }'
   ```

------

Complimenti\$1 Hai generato con successo una chiave API Amazon Bedrock ed effettuato la prima chiamata API al servizio Amazon Bedrock. Dopo aver esplorato altre azioni di Amazon Bedrock, dovresti passare a metodi di autenticazione più sicuri, come chiavi API Amazon Bedrock a breve termine o credenziali temporanee a AWS livello globale. Per ulteriori informazioni, consulta le seguenti risorse:
+ **Esplora diversi modelli**: scopri altri modelli di fondazione disponibili in Amazon Bedrock in [Informazioni sul modello di fondazione Amazon Bedrock](foundation-models-reference.md) e modifica `model_id` nel codice per provarli.
+ **Scopri l’inferenza del modello**: scopri come generare risposte con l’inferenza del modello leggendo i concetti e le opzioni disponibili in Amazon Bedrock in [Invio di prompt e generazione di risposte con l’inferenza del modello](inference.md).
+ **Pianifica la produzione con metodi di autenticazione più sicuri**: scopri maggiori dettagli sulle chiavi API Amazon Bedrock nel capitolo Build e su come creare chiavi API Amazon Bedrock più sicure e a breve termine. Quando sei pronto a creare applicazioni di produzione, dovresti anche esaminare le [alternative alle chiavi di accesso a lungo termine](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds-programmatic-access.html#security-creds-alternatives-to-long-term-access-keys) per trovare opzioni più sicure che consentano anche l'accesso ad altri AWS servizi.

# Esegui esempi di richieste API Amazon Bedrock con AWS Command Line Interface
<a name="getting-started-api-ex-cli"></a>

Questa sezione ti guida a provare alcune operazioni comuni in Amazon Bedrock utilizzando il AWS Command Line Interface per verificare che le tue autorizzazioni e l'autenticazione siano configurate correttamente. Prima di eseguire i seguenti esempi, devi verificare di aver soddisfatto i seguenti prerequisiti:

**Prerequisiti**
+ Hai un Account AWS utente o un ruolo con autenticazione configurata e le autorizzazioni necessarie per Amazon Bedrock. In caso contrario, segui le fasi in [Iniziare a utilizzare l’API](getting-started-api.md).
+ Hai installato e configurato l’autenticazione per AWS CLI. Per installare il AWS CLI, segui i passaggi in [Installa o aggiorna alla versione più recente di](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html). AWS CLI Verifica di aver configurato le credenziali per utilizzare la CLI seguendo la procedura indicata alla pagina [Ottenere le credenziali per concedere l’accesso programmatico](getting-started-api.md#gs-grant-program-access).

Verifica che le tue autorizzazioni siano configurate correttamente per Amazon Bedrock, utilizzando un utente o un ruolo che hai configurato con le autorizzazioni appropriate.

**Topics**
+ [Elencare i modelli di fondazione offerti da Amazon Bedrock](#getting-started-api-ex-cli-listfm)
+ [Invia un messaggio di testo a un modello e genera una risposta di testo con InvokeModel](#getting-started-api-ex-cli-invoke-text)
+ [Inviare un prompt di testo a un modello e generare una risposta testuale con Converse](#getting-started-api-ex-cli-converse)

## Elencare i modelli di fondazione offerti da Amazon Bedrock
<a name="getting-started-api-ex-cli-listfm"></a>

L'esempio seguente esegue l'[ListFoundationModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListFoundationModels.html)operazione utilizzando AWS CLI. `ListFoundationModels`elenca i modelli base (FMs) disponibili in Amazon Bedrock nella tua regione. In un terminale, esegui il comando riportato qui sotto:

```
aws bedrock list-foundation-models
```

Se il comando ha esito positivo, la risposta restituisce un elenco dei modelli di fondazione disponibili in Amazon Bedrock.

## Invia un messaggio di testo a un modello e genera una risposta di testo con InvokeModel
<a name="getting-started-api-ex-cli-invoke-text"></a>

L'esempio seguente esegue l'[InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)operazione utilizzando. AWS CLI`InvokeModel`consente di inviare un prompt per generare una risposta del modello. In un terminale, esegui il comando riportato qui sotto:

```
aws bedrock-runtime invoke-model \
--model-id amazon.titan-text-express-v1 \
--body '{"inputText": "Describe the purpose of a \"hello world\" program in one line.", "textGenerationConfig" : {"maxTokenCount": 512, "temperature": 0.5, "topP": 0.9}}' \
--cli-binary-format raw-in-base64-out \
invoke-model-output-text.txt
```

Se il comando ha esito positivo, la risposta generata dal modello viene scritta nel file `invoke-model-output-text.txt`. La risposta testuale viene restituita nel campo `outputText`, insieme alle informazioni di accompagnamento.

## Inviare un prompt di testo a un modello e generare una risposta testuale con Converse
<a name="getting-started-api-ex-cli-converse"></a>

L'esempio seguente esegue l'operazione [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) utilizzando. AWS CLI`Converse`consente di inviare un prompt per generare una risposta del modello. Ti consigliamo di utilizzare l’operazione `Converse` invece di `InvokeModel` quando supportata, perché unifica la richiesta di inferenza tra i modelli di Amazon Bedrock e semplifica la gestione delle conversazioni multi-turno. In un terminale, esegui il comando riportato qui sotto:

```
aws bedrock-runtime converse \
--model-id amazon.titan-text-express-v1 \
--messages '[{"role": "user", "content": [{"text": "Describe the purpose of a \"hello world\" program in one line."}]}]' \
--inference-config '{"maxTokens": 512, "temperature": 0.5, "topP": 0.9}'
```

Se il comando ha esito positivo, la risposta generata dal modello viene restituita nel campo `text`, insieme alle informazioni di accompagnamento.

# Esegui esempi di richieste API Amazon Bedrock tramite l' AWS SDK for Python (Boto3)
<a name="getting-started-api-ex-python"></a>

Questa sezione ti guida a provare alcune operazioni comuni in Amazon Bedrock AWS Python per verificare che le autorizzazioni e l'autenticazione siano configurate correttamente. Prima di eseguire i seguenti esempi, devi verificare di aver soddisfatto i seguenti prerequisiti:

**Prerequisiti**
+ Hai un Account AWS utente o un ruolo con autenticazione configurata e le autorizzazioni necessarie per Amazon Bedrock. In caso contrario, segui le fasi in [Iniziare a utilizzare l’API](getting-started-api.md).
+ Hai installato e configurato l'autenticazione per l' AWS SDK for Python (Boto3). Per installare Boto3, segui la procedura indicata alla pagina [Quickstart](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) della documentazione di Boto3. Verifica di aver configurato le credenziali per utilizzare Boto3 seguendo la procedura indicata alla pagina [Ottenere le credenziali per concedere l’accesso programmatico](getting-started-api.md#gs-grant-program-access).

Verifica che le tue autorizzazioni siano configurate correttamente per Amazon Bedrock, utilizzando un utente o un ruolo che hai configurato con le autorizzazioni appropriate. 

La documentazione di Amazon Bedrock include anche esempi di codice per altri linguaggi di programmazione. Per ulteriori informazioni, consulta [Esempi di codice per l'utilizzo di Amazon Bedrock AWS SDKs](service_code_examples.md).

**Topics**
+ [Elencare i modelli di fondazione offerti da Amazon Bedrock](#getting-started-api-ex-python-listfm)
+ [Invia un messaggio di testo a un modello e genera una risposta di testo con InvokeModel](#getting-started-api-ex-python-invoke-text)
+ [Inviare un prompt di testo a un modello e generare una risposta testuale con Converse](#getting-started-api-ex-python-converse)

## Elencare i modelli di fondazione offerti da Amazon Bedrock
<a name="getting-started-api-ex-python-listfm"></a>

L'esempio seguente esegue l'[ListFoundationModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListFoundationModels.html)operazione utilizzando un client Amazon Bedrock. `ListFoundationModels`elenca i modelli base (FMs) disponibili in Amazon Bedrock nella tua regione. Esegui il seguente script SDK for Python per creare un client Amazon Bedrock e testarne il funzionamento: [ListFoundationModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListFoundationModels.html)

```
"""
Lists the available Amazon Bedrock models in an &AWS-Region;.
"""
import logging
import json
import boto3


from botocore.exceptions import ClientError


logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)


def list_foundation_models(bedrock_client):
    """
    Gets a list of available Amazon Bedrock foundation models.

    :return: The list of available bedrock foundation models.
    """

    try:
        response = bedrock_client.list_foundation_models()
        models = response["modelSummaries"]
        logger.info("Got %s foundation models.", len(models))
        return models

    except ClientError:
        logger.error("Couldn't list foundation models.")
        raise


def main():
    """Entry point for the example. Change aws_region to the &AWS-Region;
    that you want to use."""
   
    aws_region = "us-east-1"

    bedrock_client = boto3.client(service_name="bedrock", region_name=aws_region)
    
    fm_models = list_foundation_models(bedrock_client)
    for model in fm_models:
        print(f"Model: {model["modelName"]}")
        print(json.dumps(model, indent=2))
        print("---------------------------\n")
    
    logger.info("Done.")

if __name__ == "__main__":
    main()
```

Se lo script ha esito positivo, la risposta restituisce un elenco di modelli di fondazione disponibili in Amazon Bedrock.

## Invia un messaggio di testo a un modello e genera una risposta di testo con InvokeModel
<a name="getting-started-api-ex-python-invoke-text"></a>

L'esempio seguente esegue l'[InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)operazione utilizzando un client Amazon Bedrock. `InvokeModel`consente di inviare un prompt per generare una risposta modello. Esegui il seguente script SDK per Python per creare un client di runtime Amazon Bedrock e generare una risposta testuale con l’operazione ``:

```
# Use the native inference API to send a text message to Amazon Titan Text G1 - Express.

import boto3
import json

from botocore.exceptions import ClientError

# Create an Amazon Bedrock Runtime client.
brt = boto3.client("bedrock-runtime")

# Set the model ID, e.g., Amazon Titan Text G1 - Express.
model_id = "amazon.titan-text-express-v1"

# Define the prompt for the model.
prompt = "Describe the purpose of a 'hello world' program in one line."

# Format the request payload using the model's native structure.
native_request = {
    "inputText": prompt,
    "textGenerationConfig": {
        "maxTokenCount": 512,
        "temperature": 0.5,
        "topP": 0.9
    },
}

# Convert the native request to JSON.
request = json.dumps(native_request)

try:
    # Invoke the model with the request.
    response = brt.invoke_model(modelId=model_id, body=request)

except (ClientError, Exception) as e:
    print(f"ERROR: Can't invoke '{model_id}'. Reason: {e}")
    exit(1)

# Decode the response body.
model_response = json.loads(response["body"].read())

# Extract and print the response text.
response_text = model_response["results"][0]["outputText"]
print(response_text)
```

Se il comando ha esito positivo, la risposta invia il testo generato dal modello in risposta al prompt.

## Inviare un prompt di testo a un modello e generare una risposta testuale con Converse
<a name="getting-started-api-ex-python-converse"></a>

L’esempio seguente esegue l’operazione [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) utilizzando un client Amazon Bedrock. Ti consigliamo di utilizzare l’operazione `Converse` invece di `InvokeModel` quando supportata, perché unifica la richiesta di inferenza tra i modelli di Amazon Bedrock e semplifica la gestione delle conversazioni multi-turno. Esegui il seguente script SDK per Python per creare un client di runtime Amazon Bedrock e generare una risposta testuale con l’operazione `Converse`:

```
# Use the Conversation API to send a text message to Amazon Titan Text G1 - Express.

import boto3
from botocore.exceptions import ClientError

# Create an Amazon Bedrock Runtime client.
brt = boto3.client("bedrock-runtime")

# Set the model ID, e.g., Amazon Titan Text G1 - Express.
model_id = "amazon.titan-text-express-v1"

# Start a conversation with the user message.
user_message = "Describe the purpose of a 'hello world' program in one line."
conversation = [
    {
        "role": "user",
        "content": [{"text": user_message}],
    }
]

try:
    # Send the message to the model, using a basic inference configuration.
    response = brt.converse(
        modelId=model_id,
        messages=conversation,
        inferenceConfig={"maxTokens": 512, "temperature": 0.5, "topP": 0.9},
    )

    # Extract and print the response text.
    response_text = response["output"]["message"]["content"][0]["text"]
    print(response_text)

except (ClientError, Exception) as e:
    print(f"ERROR: Can't invoke '{model_id}'. Reason: {e}")
    exit(1)
```

Se il comando ha esito positivo, la risposta invia il testo generato dal modello in risposta al prompt.

# Esegui esempi di richieste API Amazon Bedrock utilizzando un notebook Amazon SageMaker AI
<a name="getting-started-api-ex-sm"></a>

Questa sezione ti guida a provare alcune operazioni comuni in Amazon Bedrock con un notebook Amazon SageMaker AI per verificare che le autorizzazioni dei ruoli Amazon Bedrock siano configurate correttamente. Prima di eseguire i seguenti esempi, devi verificare di aver soddisfatto i seguenti prerequisiti:

**Prerequisiti**
+ Disponi Account AWS e disponi delle autorizzazioni per accedere a un ruolo con le autorizzazioni necessarie per Amazon Bedrock. In caso contrario, segui le fasi in [Guida introduttiva](getting-started.md).
+ Esegui i seguenti passaggi per configurare le autorizzazioni IAM per l' SageMaker intelligenza artificiale e creare un notebook:

  1. Modifica la [policy di attendibilità](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#term_trust-policy) del ruolo Amazon Bedrock che configuri in [Guida introduttiva](getting-started.md) tramite [console](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-trust-policy), [CLI](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-cli.html#roles-managingrole_edit-trust-policy-cli) o [API.](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-api.html#roles-managingrole_edit-trust-policy-api) Allega la seguente politica di fiducia al ruolo per consentire ai servizi Amazon Bedrock e SageMaker AI di assumere il ruolo di Amazon Bedrock:

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "BedrockTrust",
                 "Effect": "Allow",
                 "Principal": {
                     "Service": "bedrock.amazonaws.com"
                 },
                 "Action": "sts:AssumeRole"
             },
             {
                 "Sid": "SagemakerTrust",
                 "Effect": "Allow",
                 "Principal": {
                     "Service": "sagemaker.amazonaws.com"
                 },
                 "Action": "sts:AssumeRole"
             }
         ]
     }
     ```

------

  1. Accedi al ruolo di Amazon Bedrock di cui hai appena modificato la policy di attendibilità.

  1. Segui i passaggi in [Crea un'istanza Amazon SageMaker AI Notebook per il tutorial](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-setup-working-env.html) e specifica l'ARN del ruolo Amazon Bedrock che hai creato per creare un'istanza di notebook SageMaker AI.

  1. **Quando **lo stato** dell'istanza del notebook è impostato su **InService**, scegli l'istanza, quindi scegli Apri. JupyterLab**

Dopo aver aperto il notebook SageMaker AI, puoi provare i seguenti esempi:

**Topics**
+ [Elencare i modelli di fondazione offerti da Amazon Bedrock](#getting-started-api-ex-sm-listfm)
+ [Inviare un prompt di testo a un modello e generare una risposta](#getting-started-api-ex-sm-converse)

## Elencare i modelli di fondazione offerti da Amazon Bedrock
<a name="getting-started-api-ex-sm-listfm"></a>

L'esempio seguente esegue l'[ListFoundationModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListFoundationModels.html)operazione utilizzando un client Amazon Bedrock. `ListFoundationModels`elenca i modelli base (FMs) disponibili in Amazon Bedrock nella tua regione. Esegui il seguente script SDK for Python per creare un client Amazon Bedrock e testarne il funzionamento: [ListFoundationModels](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_ListFoundationModels.html)

```
"""
Lists the available Amazon Bedrock models in an &AWS-Region;.
"""
import logging
import json
import boto3


from botocore.exceptions import ClientError


logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)


def list_foundation_models(bedrock_client):
    """
    Gets a list of available Amazon Bedrock foundation models.

    :return: The list of available bedrock foundation models.
    """

    try:
        response = bedrock_client.list_foundation_models()
        models = response["modelSummaries"]
        logger.info("Got %s foundation models.", len(models))
        return models

    except ClientError:
        logger.error("Couldn't list foundation models.")
        raise


def main():
    """Entry point for the example. Change aws_region to the &AWS-Region;
    that you want to use."""
   
    aws_region = "us-east-1"

    bedrock_client = boto3.client(service_name="bedrock", region_name=aws_region)
    
    fm_models = list_foundation_models(bedrock_client)
    for model in fm_models:
        print(f"Model: {model["modelName"]}")
        print(json.dumps(model, indent=2))
        print("---------------------------\n")
    
    logger.info("Done.")

if __name__ == "__main__":
    main()
```

Se lo script ha esito positivo, la risposta restituisce un elenco di modelli di fondazione disponibili in Amazon Bedrock.

## Inviare un prompt di testo a un modello e generare una risposta
<a name="getting-started-api-ex-sm-converse"></a>

L’esempio seguente esegue l’operazione [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) utilizzando un client Amazon Bedrock. `Converse` consente di inviare un prompt per generare una risposta del modello. Esegui il seguente script SDK per Python per creare un client di runtime Amazon Bedrock e testare l’operazione [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html):

```
# Use the Conversation API to send a text message to Amazon Titan Text G1 - Express.

import boto3
from botocore.exceptions import ClientError

# Create an Amazon Bedrock Runtime client.
brt = boto3.client("bedrock-runtime")

# Set the model ID, e.g., Amazon Titan Text G1 - Express.
model_id = "amazon.titan-text-express-v1"

# Start a conversation with the user message.
user_message = "Describe the purpose of a 'hello world' program in one line."
conversation = [
    {
        "role": "user",
        "content": [{"text": user_message}],
    }
]

try:
    # Send the message to the model, using a basic inference configuration.
    response = brt.converse(
        modelId=model_id,
        messages=conversation,
        inferenceConfig={"maxTokens": 512, "temperature": 0.5, "topP": 0.9},
    )

    # Extract and print the response text.
    response_text = response["output"]["message"]["content"][0]["text"]
    print(response_text)

except (ClientError, Exception) as e:
    print(f"ERROR: Can't invoke '{model_id}'. Reason: {e}")
    exit(1)
```

Se il comando ha esito positivo, la risposta invia il testo generato dal modello in risposta al prompt.