

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

# Esempi di bot
<a name="examples"></a>

Questa sezione fornisce esempi di bot Amazon Lex che puoi usare come punto di partenza per le tue applicazioni.

**Topics**
+ [Assistente agente del call center](example-call-center.md)

# Assistente agente del call center
<a name="example-call-center"></a>

In questo tutorial, utilizzi Amazon Lex V2 con Amazon Kendra per creare un bot di assistenza agli agenti che assiste gli agenti dell'assistenza clienti e pubblicarlo come applicazione Web. Amazon Kendra è un servizio di ricerca aziendale che utilizza l'apprendimento automatico per cercare tra i documenti e trovare risposte. Per ulteriori informazioni su Amazon Kendra, consulta la Amazon Kendra [Developer *Guide*](https://docs.aws.amazon.com/kendra/latest/dg/what-is-kendra.html). 

I bot Amazon Lex V2 sono ampiamente utilizzati nei call center come primo punto di contatto per i clienti. Un bot è spesso in grado di risolvere le domande dei clienti. Quando un bot non è in grado di rispondere a una domanda, trasferisce la conversazione a un impiegato dell'assistenza clienti. 

In questo tutorial, creiamo un bot Amazon Lex V2 che gli agenti utilizzano per rispondere alle domande dei clienti in tempo reale. Leggendo le risposte fornite dal bot, l'agente non deve più cercare le risposte manualmente. 

Il bot e l'applicazione web creati in questo tutorial aiutano gli agenti a rispondere ai clienti in modo efficiente e preciso fornendo rapidamente le risorse giuste. Il diagramma seguente mostra come funziona l'applicazione web. 

![\[alt text not found\]](http://docs.aws.amazon.com/it_it/lexv2/latest/dg/images/agent-tutorial.png)






Come illustrato nel diagramma, l'indice dei documenti di Amazon Kendra è archiviato in un bucket Amazon Simple Storage Service (Amazon S3). Se non disponi già di un bucket S3, puoi configurarne uno quando crei l'indice Amazon Kendra. Oltre ad Amazon S3, utilizzerai Amazon Cognito per questo tutorial. Amazon Cognito gestisce le autorizzazioni per la distribuzione del bot come applicazione Web.

In questo tutorial, crei un indice Amazon Kendra che fornisce risposte alle domande dei clienti, crei il bot e aggiungi intenti che gli consentano di suggerire risposte in base alla conversazione con il cliente, configuri Amazon Cognito per gestire le autorizzazioni di accesso e distribuisci il bot come applicazione Web.

**Tempo previsto:** 75 minuti

**Costo stimato:** 2,50 USD all'ora per un indice Amazon Kendra e 0,75 USD per 1000 richieste Amazon Lex V2. Il tuo indice Amazon Kendra continua a funzionare al termine di questo esercizio. Assicurati di eliminarlo per evitare costi inutili. 

**Nota:** assicurati di scegliere la stessa regione AWS per tutti i servizi utilizzati in questo tutorial.

**Topics**
+ [Passaggio 1: creare un indice Amazon Kendra](agent-step-1.md)
+ [Fase 2: creare un bot Amazon Lex V2](agent-step-2.md)
+ [Fase 3: aggiungere un intento personalizzato e integrato](agent-step-3.md)
+ [Passaggio 4: configurare Amazon Cognito](agent-step-4.md)
+ [Passaggio 5: Implementa il tuo bot come applicazione Web](agent-step-5.md)
+ [Passaggio 6: utilizzare il bot](agent-step-6.md)

# Passaggio 1: creare un indice Amazon Kendra
<a name="agent-step-1"></a>

Inizia creando un indice Amazon Kendra di documenti che rispondono alle domande dei clienti. Un indice fornisce un'API di ricerca per le richieste dei clienti. L'indice viene creato a partire dai documenti di origine. Amazon Kendra restituisce le risposte che trova nei documenti indicizzati al bot, che le mostra all'agente.

La qualità e l'accuratezza delle risposte suggerite da Amazon Kendra dipendono dai documenti indicizzati. I documenti devono includere file a cui l'agente accede frequentemente e devono essere archiviati in un bucket S3. È possibile indicizzare i dati non strutturati e semistrutturati nei formati .html, Microsoft Office (.doc, .ppt), PDF e testo. 

*Per creare un indice Amazon Kendra, [consulta la sezione Guida introduttiva a un bucket S3 (console) nella](https://docs.aws.amazon.com/kendra/latest/dg/gs-console.html) Amazon Kendra Developer Guide.*

Per aggiungere domande e risposte (FAQs) che aiutano a rispondere alle domande dei clienti, consulta [Aggiungere domande e risposte](https://docs.aws.amazon.com/kendra/latest/dg/in-creating-faq.html) nella *Amazon Kendra* Developer Guide. Per questo tutorial, usa il [file ML\$1FAQ.csv](https://github.com/awsdocs/amazon-lex-developer-guide/blob/master/example_apps/agent_assistance_bot/ML_FAQ.csv) su. GitHub

## Approfondimenti
<a name="agent-step-1-next"></a>

[Fase 2: creare un bot Amazon Lex V2](agent-step-2.md)

# Fase 2: creare un bot Amazon Lex V2
<a name="agent-step-2"></a>

Amazon Lex V2 fornisce un'interfaccia tra l'agente del call center e l'indice Amazon Kendra. Tiene traccia della conversazione tra l'agente e il cliente e definisce le `AMAZON.KendraSearchIntent` intenzioni in base alle domande poste dal cliente. Un *intento* è un'azione che l'utente desidera eseguire.

Amazon Kendra cerca i documenti indicizzati e restituisce una risposta ad Amazon Lex V2 che viene visualizzata nel bot. Questa risposta è visibile solo all'agente.

**Per creare un bot agente assistente**

1. Accedi alla Console di gestione AWS e apri la console Amazon Lex all'indirizzo [https://console.aws.amazon.com/lex/](https://console.aws.amazon.com/lex/).

1. Nel riquadro di navigazione, scegliere **Bot**.

1. Scegli **Create** (Crea).

1. Scegli **Custom bot** e configura il bot.

   1. **Nome bot**: inserisci un nome che indichi lo scopo del bot, ad esempio**AgentAssistBot**.

   1. **Emetti voce**: scegli **Nessuno**.

   1. **Timeout della sessione**: Invio**5**.

   1. **COPPA****: scegli No.**

1. Scegli **Create** (Crea). Dopo aver creato il bot, Amazon Lex V2 visualizza la scheda dell'editor dei bot.

## Approfondimenti
<a name="agent-step-2-next"></a>

[Fase 3: aggiungere un intento personalizzato e integrato](agent-step-3.md)

# Fase 3: aggiungere un intento personalizzato e integrato
<a name="agent-step-3"></a>

Un *intento* rappresenta un'azione che l'agente del call center desidera che il bot esegua. In questo caso, l'agente desidera che il bot suggerisca risposte e risorse utili in base alla conversazione dell'agente con il cliente. 

Amazon Lex V2 ha due tipi di intenti: intenti personalizzati e intenti incorporati. `AMAZON.KendraSearchIntent`è un intento incorporato. Il bot utilizza l'`AMAZON.KendraSearchIntent`intento di interrogare l'indice e visualizzare le risposte suggerite da Amazon Kendra. 

Il bot in questo esempio non necessita di un intento personalizzato. Tuttavia, per creare il bot, è necessario creare almeno un intento personalizzato con almeno un enunciato di esempio. Questo intento è necessario solo per creare il bot dell'assistente agente. Non svolge nessun'altra funzione. L'espressione dell'intento non deve rispondere a nessuna delle domande che il cliente potrebbe porre. Ciò garantisce che `AMAZON.KendraSearchIntent` sia chiamato a rispondere alle domande dei clienti. Per ulteriori informazioni, consulta [AMAZON.KendraSearchIntent](built-in-intent-kendra-search.md).

**Per creare l'intento personalizzato richiesto**

1. Nella pagina **Nozioni di base sul bot** scegli **Crea intento**.

1. Per **Aggiungi intento**, scegli **Crea intento**.

1. Nella finestra di dialogo **Crea intento**, inserite un nome descrittivo per l'intento, ad esempio. **RequiredIntent**

1. Per **Esempi di enunciati, inserite un enunciato** descrittivo, ad esempio. **Required utterance**

1. Scegliere **Salva intento**.

**Per aggiungere il messaggio di `AMAZON.KendraSearchIntent` intento e risposta**

1. Nel riquadro di navigazione, scegli il segno più (\$1) accanto a **Intenti**.

1. Scegli **Cerca intenti esistenti**.

1. Nella casella **Cerca intenti**, inserisci**AMAZON.KendraSearchIntent**, quindi selezionalo dall'elenco.

1. **Assegna un nome descrittivo all'intento, ad esempio**AgentAssistSearchIntent**, quindi scegli Aggiungi.**

1. Nell'editor degli intenti, scegli **Query Amazon Kendra** per aprire le opzioni delle query.

1. Scegli l'indice in cui desideri che l'intento cerchi,

1. Nella sezione **Risposta**, aggiungi i seguenti tre messaggi a un gruppo di messaggi.

   ```
   I found an answer for the customer query: ((x-amz-lex:kendra-search-response-question_answer-question-1)) and the answer is ((x-amz-lex:kendra-search-response-question_answer-answer-1)).
   I found an excerpt from a helpful document: ((x-amz-lex:kendra-search-response-document-1)).
   I think this answer will help the customer: ((x-amz-lex:kendra-search-response-answer-1)).
   ```

1. Scegliere **Salva intento**. 

1. Scegli **Build** per creare il bot.

## Approfondimenti
<a name="agent-step-3-next"></a>

[Passaggio 4: configurare Amazon Cognito](agent-step-4.md)

# Passaggio 4: configurare Amazon Cognito
<a name="agent-step-4"></a>

Per gestire le autorizzazioni e gli utenti per l'applicazione Web, devi configurare Amazon Cognito. Amazon Cognito garantisce che l'applicazione Web sia sicura e abbia il controllo degli accessi. Amazon Cognito utilizza pool di identità per fornire credenziali AWS che consentono agli utenti di accedere ad altri servizi AWS. Per questo tutorial, fornisce l'accesso ad Amazon Lex V2.

Quando si crea un pool di identità, Amazon Cognito fornisce ruoli AWS Identity and Access Management (IAM) per utenti autenticati e non autenticati. Puoi modificare i ruoli IAM aggiungendo policy che concedono l'accesso ad Amazon Lex V2. 

**Per configurare Amazon Cognito**

1. Accedi alla Console di gestione AWS e apri la console Amazon Cognito all'indirizzo. [https://console.aws.amazon.com/cognito/](https://console.aws.amazon.com/cognito)

1. Scegli **Manage Identity Pools (Gestisci pool di identità)**.

1. Scegli **Create new identity pool** (Crea un nuovo pool di identità).

1. Configura il pool di identità.

   1. **Nome del pool di identità**: immetti un nome che indichi lo scopo del pool, ad esempio**BotPool**.

   1. Nella sezione Identità **non autenticate, scegli Abilita l'accesso alle identità** **non autenticate**.

1. Seleziona **Create Pool** (Crea pool).

1. **Nella pagina **Identifica i ruoli IAM da utilizzare con il tuo nuovo pool di identità**, scegli Visualizza dettagli.**

1. Registra i nomi dei ruoli IAM. Li modificherai in seguito.

1. Scegli **Permetti**.

1. Nella pagina **Guida introduttiva ad Amazon Cognito**, per **Piattaforma, scegli**. **JavaScript**

1. Nella sezione **Get AWS Credentials**, trova e registra l'**ID del pool di identità**.

1. Per consentire l'accesso ad Amazon Lex V2, modifica i ruoli IAM autenticati e non autenticati.

   1. Accedi alla Console di gestione AWS, quindi apri la console di IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. **Nel pannello di navigazione, in **Gestione degli accessi, scegli Ruoli**.**

   1. Nella casella di ricerca, inserisci il nome del ruolo IAM autenticato e scegli la casella di controllo accanto ad esso. 

      1. Scegli **Collega policy**.

      1. Nella casella di ricerca, inserisci **AmazonLexRunBotsOnly** e scegli la casella di controllo accanto ad essa.

      1. Scegli **Collega policy**.

   1. Inserisci il nome del ruolo IAM non autenticato nella casella di ricerca e seleziona la casella di controllo accanto ad esso. 

      1. Scegli **Collega policy**.

      1. Nella casella di ricerca, inserisci **AmazonLexRunBotsOnly** e scegli la casella di controllo accanto ad essa.

      1. Scegli **Collega policy**.

## Approfondimenti
<a name="agent-step-4-next"></a>

[Passaggio 5: Implementa il tuo bot come applicazione Web](agent-step-5.md)

# Passaggio 5: Implementa il tuo bot come applicazione Web
<a name="agent-step-5"></a>

**Per distribuire il bot come applicazione Web**

1. Scarica il repository su [https://github.com/awsdocs/amazon-lex-developer-guide/blob/master/example\$1apps/agent\$1assistance\$1bot/](https://github.com/awsdocs/amazon-lex-developer-guide/blob/master/example_apps/agent_assistance_bot/) sul tuo computer.

1. Vai al repository scaricato e apri il file index.html in un editor.

1. Apportare le seguenti modifiche:

   1. Nella `AWS.config.credentials` sezione, inserisci il nome della tua regione e l'ID del tuo pool di identità.

   1. Nella ` Amazon Lex V2 runtime parameters` sezione, inserisci il nome del bot.

   1. Salvare il file.

# Passaggio 6: utilizzare il bot
<a name="agent-step-6"></a>

A scopo dimostrativo, fornisci input al bot come cliente e come agente. Per distinguere tra le due, le domande poste dal cliente iniziano con «Cliente:» e le risposte fornite dall'agente iniziano con «Agente:». Puoi scegliere da un menu di input suggeriti. 

Esegui la tua applicazione web `index.html` aprendola per avviare una conversazione con il tuo bot in questo modo:.

![\[Un esempio di conversazione tra un bot di call center e Agent Assistant.\]](http://docs.aws.amazon.com/it_it/lexv2/latest/dg/images/agent-tutorial-ss.png)


La `pushChat()` funzione nel file index.html è illustrata di seguito.

```
            
            var endConversationStatement = "Customer: I have no more questions. Thank you." 
            // If the agent has to send a message, start the message with 'Agent'
            var inputText = document.getElementById('input');
            if (inputText && inputText.value && inputText.value.trim().length > 0 && inputText.value[0]=='Agent') {               
                showMessage(inputText.value, 'agentRequest','conversation');
                inputText.value = "";
            }
            // If the customer has to send a message, start the message with 'Customer'
            if(inputText && inputText.value && inputText.value.trim().length > 0 && inputText.value[0]=='Customer') {  
                // disable input to show we're sending it
                var input = inputText.value.trim();
                inputText.value = '...';
                inputText.locked = true;
                customerInput = input.substring(2);

                // Send it to the Lex runtime
                var params = {
                    botAlias: '$LATEST',
                    botName: 'KendraTestBot',
                    inputText: customerInput,
                    userId: lexUserId,
                    sessionAttributes: sessionAttributes
                };

                showMessage(input, 'customerRequest', 'conversation');
                if(input== endConversationStatement){
                    showMessage('Conversation Ended.','conversationEndRequest','conversation');
                }
                lexruntime.postText(params, function(err, data) {
                    if (err) {
                        console.log(err, err.stack);
                        showMessage('Error:  ' + err.message + ' (see console for details)', 'lexError', 'conversation1')
                    }

                    if (data &&input!=endConversationStatement) {
                        // capture the sessionAttributes for the next cycle
                        sessionAttributes = data.sessionAttributes;
                        
                            showMessage(data, 'lexResponse', 'conversation1');
                    }
                    // re-enable input
                    inputText.value = '';
                    inputText.locked = false;
                });
            }
            // we always cancel form submission
            return false;
```

 Quando fornisci un input come cliente, l'API di runtime di Amazon Lex V2 lo invia ad Amazon Lex V2.

La `showMessage(daText, senderRequest, displayWindow)` funzione visualizza la conversazione tra l'agente e il cliente nella finestra di chat. Le risposte suggerite da Amazon Kendra vengono visualizzate in una finestra adiacente. La conversazione termina quando il cliente dice **“I have no more questions. Thank you.”**

**Nota:** elimina il tuo indice Amazon Kendra quando non è in uso.