

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

# Exemplos de bots
<a name="examples"></a>

Esta seção fornece exemplos de bots do Amazon Lex que você pode usar como ponto de partida para seus próprios aplicativos.

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

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

Neste tutorial, você usa o Amazon Lex V2 com o Amazon Kendra para criar um bot de assistência ao agente que auxilia os agentes de suporte ao cliente e o publica como um aplicativo web. O Amazon Kendra é um serviço de pesquisa empresarial que usa machine learning para pesquisar documentos e encontrar respostas. Para obter mais informações sobre o Amazon Kendra, consulte [o *Guia do desenvolvedor do Amazon Kendra*](https://docs.aws.amazon.com/kendra/latest/dg/what-is-kendra.html). 

Os bots Amazon Lex V2 são amplamente usados em call centers como o primeiro ponto de contato dos clientes. Frequentemente, um bot consegue resolver as dúvidas dos clientes. Quando um bot não consegue responder a uma pergunta, ele transfere a conversa para um funcionário do suporte ao cliente. 

Neste tutorial, criamos um bot Amazon Lex V2 que os agentes usam para responder às consultas dos clientes em tempo real. Ao ler as respostas do bot, o atendente não precisa pesquisar as respostas manualmente. 

O bot e o aplicativo Web que você cria neste tutorial ajudam os atendentes a responder aos clientes com eficiência e precisão, fornecendo rapidamente os recursos certos. O diagrama a seguir mostra como o aplicativo Web funciona. 

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






Como mostra o diagrama, o índice de documentos do Amazon Kendra é armazenado em um bucket do Amazon Simple Storage Service (Amazon S3). Se ainda não tem um bucket do S3, você pode configurá-lo ao criar o índice do Amazon Kendra. Além do Amazon S3, você usa o Amazon Cognito neste tutorial. O Amazon Cognito gerencia as permissões para implantar o bot como um aplicativo Web.

Neste tutorial, você cria um índice do Amazon Kendra que responde às perguntas dos clientes, cria o bot e adiciona intenções que permitem que ele sugira respostas com base na conversa com o cliente, configura o Amazon Cognito para gerenciar permissões de acesso e implanta o bot como um aplicativo Web.

**Tempo estimado:** 75 minutos

**Custo estimado:** 2,50 USD por hora para um índice Amazon Kendra e 0,75 USD para 1.000 solicitações do Amazon Lex V2. Seu índice do Amazon Kendra continuará em execução depois que você terminar este exercício. Exclua-o para evitar custos desnecessários. 

**Observação:** escolha a mesma região da AWS para todos os serviços usados neste tutorial.

**Topics**
+ [Etapa 1: criar um índice do Amazon Kendra](agent-step-1.md)
+ [Etapa 2: Criar um Amazon Lex V2 Bot](agent-step-2.md)
+ [Etapa 3: adicionar uma intenção personalizada e integrada](agent-step-3.md)
+ [Etapa 4: configurar o Amazon Cognito](agent-step-4.md)
+ [Etapa 5: implantar seu bot como um aplicativo Web](agent-step-5.md)
+ [Etapa 6: usar o bot](agent-step-6.md)

# Etapa 1: criar um índice do Amazon Kendra
<a name="agent-step-1"></a>

Comece criando um índice de documentos do Amazon Kendra que respondam às perguntas dos clientes. O índice fornece uma API de pesquisa para consultas dos clientes. Você cria o índice a partir dos documentos de origem. O Amazon Kendra retorna as respostas que encontra em documentos indexados para o bot, que as exibe para o atendente.

A qualidade e a precisão das respostas sugeridas pelo Amazon Kendra dependem dos documentos que você indexa. Os documentos devem incluir arquivos acessados com frequência pelo atendente e ser armazenados em um bucket do S3. Você pode indexar dados não estruturados e semiestruturados nos formatos .html, Microsoft Office (.doc, .ppt), PDF e texto. 

Para criar um índice do Amazon Kendra, consulte [Conceitos básicos do bucket do S3 (console)](https://docs.aws.amazon.com/kendra/latest/dg/gs-console.html) no *Guia do desenvolvedor do Amazon Kendra*.

Para adicionar perguntas e respostas (FAQs) que ajudem a responder às dúvidas dos clientes, consulte [Adicionar perguntas e respostas no Guia](https://docs.aws.amazon.com/kendra/latest/dg/in-creating-faq.html) do desenvolvedor do *Amazon Kendra*. Para este tutorial, use o [arquivo ML\$1FAQ.csv em GitHub.](https://github.com/awsdocs/amazon-lex-developer-guide/blob/master/example_apps/agent_assistance_bot/ML_FAQ.csv)

## Próxima etapa
<a name="agent-step-1-next"></a>

[Etapa 2: Criar um Amazon Lex V2 Bot](agent-step-2.md)

# Etapa 2: Criar um Amazon Lex V2 Bot
<a name="agent-step-2"></a>

O Amazon Lex V2 fornece uma interface entre o agente do call center e o índice Amazon Kendra. Ele acompanha a conversa entre o atendente e o cliente e chama a intenção de `AMAZON.KendraSearchIntent` com base nas perguntas que o cliente faz. A *intenção* é uma ação que o usuário quer realizar.

O Amazon Kendra pesquisa os documentos indexados e retorna uma resposta para o Amazon Lex V2 que é exibida no bot. Esta resposta é visível somente para o atendente.

**Para criar um bot de assistente do atendente**

1. Faça login no AWS Management Console e abra o console do Amazon Lex em [https://console.aws.amazon.com/lex/](https://console.aws.amazon.com/lex/).

1. No painel de navegação, escolha **Bots**.

1. Escolha **Criar**.

1. Escolha **Bot personalizado** e configure o bot.

   1. **Nome do bot**: insira um nome que indique a finalidade do bot, como **AgentAssistBot**.

   1. **Voz de saída**: escolha **Nenhuma**.

   1. **Tempo limite da sessão**: insira **5**.

   1. **COPPA**: escolha **Não**.

1. Escolha **Criar**. Depois de criar o bot, o Amazon Lex V2 exibe a guia do editor de bots.

## Próxima etapa
<a name="agent-step-2-next"></a>

[Etapa 3: adicionar uma intenção personalizada e integrada](agent-step-3.md)

# Etapa 3: adicionar uma intenção personalizada e integrada
<a name="agent-step-3"></a>

A *intenção* representa uma ação que o atendente do call center quer que o bot realize. Nesse caso, o atendente quer que o bot sugira respostas e recursos úteis com base na conversa do atendente com o cliente. 

O Amazon Lex V2 tem dois tipos de intenções: intenções personalizadas e intenções incorporadas. `AMAZON.KendraSearchIntent`é uma intenção embutida. O bot usa a intenção `AMAZON.KendraSearchIntent` para consultar o índice e exibir as respostas sugeridas pelo Amazon Kendra. 

O bot neste exemplo não precisa de uma intenção personalizada. No entanto, para criar o bot, é necessário criar pelo menos uma intenção personalizada com pelo menos uma amostra de declaração. Essa intenção é necessária apenas para criar o bot de assistente do atendente. Ela não executa nenhuma outra função. a declaração para a intenção não deve responder a nenhuma das perguntas feitas pelo cliente. Isso garante que a intenção `AMAZON.KendraSearchIntent` seja chamada para responder às dúvidas dos clientes. Para obter mais informações, consulte [AMAZON.KendraSearchIntent](built-in-intent-kendra-search.md).

**Para criar a intenção personalizada necessária**

1. Na página **Começar a usar o bot**, escolha **Criar intenção**.

1. Em **Adicionar intenção**, escolha **Criar intenção**.

1. Na caixa de diálogo **Criar intenção**, insira um nome descritivo para a intenção, como **RequiredIntent**.

1. Em **Amostra de declarações**, insira uma declaração descritiva, como **Required utterance**.

1. Selecione **Salvar intenção**.

**Para adicionar a `AMAZON.KendraSearchIntent` mensagem de intenção e resposta**

1. No painel de navegação, escolha o sinal de adição (\$1) ao lado de **Intenções**.

1. Escolha **Pesquisar intenções existentes**.

1. Na caixa **Pesquisar intenções**, insira **AMAZON.KendraSearchIntent** e escolha-a na lista.

1. Insira um nome descritivo para a intenção, como **AgentAssistSearchIntent**, e escolha **Adicionar**.

1. No editor de intenções, escolha **Consulta do Amazon Kendra** para abrir as opções de consulta.

1. Escolha o índice que você quer que a intenção pesquise,

1. Na seção **Resposta**, adicione as três mensagens a seguir a um grupo de mensagens.

   ```
   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. Selecione **Salvar intenção**. 

1. Escolha **Criar** para criar o bot.

## Próxima etapa
<a name="agent-step-3-next"></a>

[Etapa 4: configurar o Amazon Cognito](agent-step-4.md)

# Etapa 4: configurar o Amazon Cognito
<a name="agent-step-4"></a>

Para gerenciar permissões e usuários do aplicativo Web, você precisa configurar o Amazon Cognito. O Amazon Cognito garante que o aplicativo Web seja seguro e tenha controle de acesso. O Amazon Cognito usa grupos de identidade para fornecer credenciais da AWS que concedem aos usuários acesso a outros serviços da AWS. Para este tutorial, ele fornece acesso ao Amazon Lex V2.

Ao criar um grupo de identidades, o Amazon Cognito fornece funções do AWS Identity and Access Management (IAM) para usuários autenticados e não autenticados. Você modifica as funções do IAM adicionando políticas que concedem acesso ao Amazon Lex V2. 

**Para configurar o Amazon Cognito**

1. Faça login no Console de Gerenciamento da AWS e abra o console do Amazon Cognito em. [https://console.aws.amazon.com/cognito/](https://console.aws.amazon.com/cognito)

1. Escolha **Gerenciar grupos de identidades**.

1. Escolha **Criar novo grupo de identidades**.

1. Configure o banco de identidades.

   1. **Nome do banco de identidades**: insira um nome que indique a finalidade do banco, como **BotPool**.

   1. Na seção **Identidades não autenticadas**, escolha **Permitir acesso a identidades não autenticadas**.

1. Selecione **Criar grupo**.

1. Na página **Identificar os perfis do IAM a serem usados com seu novo banco de identidades**, escolha **Exibir detalhes**.

1. Registre os nomes dos perfis do IAM. Você os modificará posteriormente.

1. Selecione **Permitir**.

1. Na página **Getting Started with Amazon Cognito**, em **Plataforma, escolha**. **JavaScript**

1. Na seção **Obter credenciais da AWS**, encontre e registre o **ID do grupo de identidades**.

1. Para permitir o acesso ao Amazon Lex V2, modifique as funções do IAM autenticadas e não autenticadas.

   1. Faça login no Console de Gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. No painel de navegação, em **Gerenciamento de acesso**, escolha **Perfis**.

   1. Na caixa de pesquisa, insira o nome do perfil do IAM autenticado e marque a caixa de seleção ao lado dele. 

      1. Escolha **Anexar políticas**.

      1. Na caixa de pesquisa, insira **AmazonLexRunBotsOnly** e marque a caixa de seleção ao lado dele.

      1. Escolha **Anexar política**.

   1. Insira o nome do perfil do IAM não autenticado na caixa de pesquisa e marque a caixa de seleção ao lado dele. 

      1. Escolha **Anexar políticas**.

      1. Na caixa de pesquisa, insira **AmazonLexRunBotsOnly** e marque a caixa de seleção ao lado dele.

      1. Escolha **Anexar política**.

## Próxima etapa
<a name="agent-step-4-next"></a>

[Etapa 5: implantar seu bot como um aplicativo Web](agent-step-5.md)

# Etapa 5: implantar seu bot como um aplicativo Web
<a name="agent-step-5"></a>

**Para implantar seu bot como um aplicativo Web**

1. Baixe o repositório em [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/) para o seu computador.

1. Navegue até o repositório baixado e abra o arquivo index.html em um editor.

1. Faça as alterações a seguir.

   1. Na seção `AWS.config.credentials`, insira o nome da sua região e o ID do seu banco de identidades.

   1. Na seção ` Amazon Lex V2 runtime parameters`, insira o nome do bot.

   1. Salve o arquivo.

# Etapa 6: usar o bot
<a name="agent-step-6"></a>

Para fins de demonstração, você fornece informações ao bot como o cliente e o atendente. Para diferenciar os dois, as perguntas feitas pelo cliente começam com “Cliente:” e as respostas fornecidas pelo atendente começam com “Atendente:”. Você pode escolher uma opção em um menu de entradas sugeridas. 

Execute seu aplicativo web abrindo `index.html` para iniciar uma conversa com seu bot como esta:.

![\[Um exemplo de conversa entre um bot de call center e o Agent Assistant.\]](http://docs.aws.amazon.com/pt_br/lexv2/latest/dg/images/agent-tutorial-ss.png)


A função `pushChat()` no arquivo index.html é explicada abaixo.

```
            
            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 você fornece informações como cliente, a API de tempo de execução do Amazon Lex V2 as envia para o Amazon Lex V2.

A função `showMessage(daText, senderRequest, displayWindow)` exibe a conversa entre o atendente e o cliente na janela de chat. As respostas sugeridas pelo Amazon Kendra são mostradas em uma janela adjacente. A conversa termina quando o cliente diz **“I have no more questions. Thank you.”**

**Observação:** exclua o índice do Amazon Kendra quando ele não estiver em uso.