Zephyrnet Logo

Aprimore o Amazon Connect e o Lex com recursos de IA generativa | Amazon Web Services

Data:

Opções eficazes de autoatendimento estão se tornando cada vez mais críticas para os contact centers, mas implementá-las bem apresenta desafios únicos.

Amazon-Lex fornece o seu Amazon Conectar contact center com funcionalidades de chatbot, como reconhecimento automático de fala (ASR) e recursos de compreensão de linguagem natural (NLU) por meio de canais de voz e texto. O bot recebe fala em linguagem natural ou entrada de texto, reconhece a intenção por trás da entrada e cumpre a intenção do usuário invocando a resposta apropriada.

Os chamadores podem ter diversos sotaques, pronúncia e gramática. Combinado com o ruído de fundo, isso pode dificultar a compreensão precisa das declarações pelo reconhecimento de fala. Por exemplo, “Quero rastrear meu pedido” pode ser confundido com “Quero transportar meu portador”. Intenções fracassadas como essas frustram os clientes que precisam se repetir, são roteados incorretamente ou são escalados para agentes ativos, o que custa mais às empresas.

Rocha Amazônica democratiza o acesso ao modelo fundamental (FM) para que os desenvolvedores criem e dimensionem sem esforço aplicativos generativos baseados em IA para o contact center moderno. FMs entregues pela Amazon Bedrock, como Titã Amazona e Claude Antrópico, são pré-treinados em conjuntos de dados em escala de Internet, o que lhes confere fortes recursos de NLU, como classificação de frases, perguntas e respostas e compreensão semântica aprimorada, apesar dos erros de reconhecimento de fala.

Nesta postagem, exploramos uma solução que usa FMs fornecidos pelo Amazon Bedrock para aprimorar o reconhecimento de intenções do Amazon Lex integrado ao Amazon Connect, proporcionando, em última análise, uma experiência de autoatendimento aprimorada para seus clientes.

Visão geral da solução

A solução usa Amazon Conectar, Amazon-Lex , AWS Lambda e Rocha Amazônica nas seguintes etapas:

  1. Um fluxo de contato do Amazon Connect se integra a um bot do Amazon Lex por meio do GetCustomerInput bloquear.
  2. Quando o bot não consegue reconhecer a intenção do chamador e adota como padrão a intenção substituta, uma função Lambda é acionada.
  3. A função Lambda pega a transcrição da declaração do cliente e a passa para um modelo básico no Amazon Bedrock
  4. Usando seus recursos avançados de linguagem natural, o modelo determina a intenção do chamador.
  5. A função Lambda então direciona o bot para rotear a chamada para a intenção correta de atendimento.

Ao usar modelos básicos do Amazon Bedrock, a solução permite que o bot do Amazon Lex entenda as intenções, apesar dos erros de reconhecimento de fala. Isso resulta em roteamento e atendimento tranquilos, evitando encaminhamentos para agentes e repetições frustrantes para chamadores.

O diagrama a seguir ilustra a arquitetura e o fluxo de trabalho da solução.

Nas seções a seguir, examinaremos os principais componentes da solução com mais detalhes.

Funções Lambda e o LangChain Framework

Quando o bot do Amazon Lex invoca a função Lambda, ele envia uma mensagem de evento que contém informações do bot e a transcrição da expressão do chamador. Usando essa mensagem de evento, a função Lambda recupera dinamicamente as intenções configuradas do bot, a descrição da intenção e as declarações da intenção e cria um prompt usando LangChain, que é uma estrutura de aprendizado de máquina (ML) de código aberto que permite aos desenvolvedores integrar grandes modelos de linguagem (LLMs), fontes de dados e aplicativos.

Um modelo básico do Amazon Bedrock é então invocado usando o prompt e uma resposta é recebida com a intenção prevista e o nível de confiança. Se o nível de confiança for maior que um limite definido, por exemplo 80%, a função retornará a intenção identificada ao Amazon Lex com uma ação para delegar. Se o nível de confiança estiver abaixo do limite, o padrão volta ao padrão FallbackIntent e uma ação para fechá-lo.

Aprendizagem no contexto, engenharia imediata e invocação de modelo

Usamos o aprendizado no contexto para poder usar um modelo básico para realizar essa tarefa. A aprendizagem no contexto é a capacidade dos LLMs aprenderem a tarefa usando apenas o que está no prompt, sem serem pré-treinados ou ajustados para a tarefa específica.

No prompt, primeiro fornecemos as instruções detalhando o que precisa ser feito. Em seguida, a função Lambda recupera e injeta dinamicamente as intenções configuradas, as descrições e as declarações de intenção do bot do Amazon Lex no prompt. Por fim, fornecemos instruções sobre como apresentar seu pensamento e resultado final.

O modelo de prompt a seguir foi testado nos modelos de geração de texto Anthropic Claude Instant v1.2 e Anthropic Claude v2. Usamos tags XML para melhorar melhor o desempenho do modelo. Também adicionamos espaço para o modelo pensar antes de identificar a intenção final para melhorar melhor seu raciocínio para escolher a intenção certa. O {intent_block} contém os IDs de intenção, as descrições de intenção e as declarações de intenção. O {input} O bloco contém a expressão transcrita do chamador. Três crases (“`) são adicionados no final para ajudar o modelo a gerar um bloco de código de forma mais consistente. A <STOP> sequência é adicionada para impedir que ela gere mais.

"""
Human: You are a call center agent. You try to understand the intent given an utterance from the caller.

The available intents are as follows, the intent of the caller is highly likely to be one of these.
<intents>
{intents_block} </intents>
The output format is:
<thinking>
</thinking>

<output>
{{
     "intent_id": intent_id,
     "confidence": confidence
}}
</output><STOP>

For the given utterance, you try to categorize the intent of the caller to be one of the intents in <intents></intents> tags.
If it does not match any intents or the utterance is blank, respond with FALLBCKINT and confidence of 1.0.
Respond with the intent name and confidence between 0.0 and 1.0.
Put your thinking in <thinking></thinking> tags before deciding on the intent.

Utterance: {input}

Assistant: ```"""

Depois que o modelo foi invocado, recebemos a seguinte resposta do modelo básico:

<thinking>
The given utterance is asking for checking where their shipment is. It matches the intent order status.
</thinking>

{
    "intent": "ORDERSTATUSID",
    "confidence": 1.0
}
```

Filtre as intenções disponíveis com base nos atributos da sessão de fluxo de contato

Ao usar a solução como parte de um fluxo de contato do Amazon Connect, você pode aprimorar ainda mais a capacidade do LLM de identificar a intenção correta especificando o atributo da sessão available_intents no “Obtenha a opinião do cliente” bloco com uma lista de intenções separadas por vírgula, conforme mostrado na captura de tela a seguir. Ao fazer isso, a função Lambda incluirá apenas essas intenções especificadas como parte do prompt do LLM, reduzindo o número de intenções pelas quais o LLM precisa raciocinar. Se o available_intents o atributo de sessão não for especificado, todas as intenções no bot do Amazon Lex serão usadas por padrão.

Resposta da função Lambda para Amazon Lex

Depois que o LLM determinar a intenção, a função Lambda responderá no formato específico exigido pelo Amazon Lex para processar a resposta.

Se uma intenção correspondente for encontrada acima do limite de confiança, ela retornará um tipo de ação de diálogo Delegate para instruir o Amazon Lex a usar a intenção selecionada e, posteriormente, retornar a intenção concluída ao Amazon Connect. A saída da resposta é a seguinte:

{
    "sessionState": {
        "dialogAction": {
        "type": "Delegate"
        },
        "intent": {
        "name": intent,
        "state": "InProgress",
        }
    }
}

Se o nível de confiança estiver abaixo do limite ou uma intenção não for reconhecida, um tipo de ação de diálogo Fechar é retornado para instruir o Amazon Lex a fechar o FallbackIntente retorne o controle ao Amazon Connect. A saída da resposta é a seguinte:

{
    "sessionState": {
        "dialogAction": {
        "type": "Close"
        },
        "intent": {
        "name": intent,
        "state": "Fulfilled",
        }
    }
}

O código-fonte completo deste exemplo está disponível em GitHub.

Pré-requisitos

Antes de começar, verifique se você tem os seguintes pré-requisitos:

Implementar a solução

Para implementar a solução, conclua as seguintes etapas:

  1. Clonar o repositório
    git clone https://github.com/aws-samples/amazon-connect-with-amazon-lex-genai-capabilities
    cd amazon-connect-with-amazon-lex-genai-capabilities

  2. Execute o seguinte comando para inicializar o ambiente e criar um Registro do Amazon Elastic Container (Amazon ECR) para a imagem da nossa função Lambda. Forneça a região da AWS e o nome do repositório ECR que você gostaria de criar.
    bash ./scripts/build.sh region-name repository-name

  3. Atualize o ParameterValue campos no scripts/parameters.json arquivo:
    • ParameterKey ("AmazonECRImageUri") – Insira a URL do repositório da etapa anterior.
    • ParameterKey ("AmazonConnectName") – Insira um nome exclusivo.
    • ParameterKey ("AmazonLexBotName") – Insira um nome exclusivo.
    • ParameterKey ("AmazonLexBotAliasName") – O padrão é “produversão”; você pode alterá-lo se necessário.
    • ParameterKey ("LoggingLevel") – O padrão é “INFO”; você pode alterá-lo se necessário. Os valores válidos são DEBUG, WARN e ERROR.
    • ParameterKey ("ModelID") – O padrão é “anthropic.claude-instant-v1”; você pode alterá-lo se precisar usar um modelo diferente.
    • ParameterKey ("AmazonConnectName") – O padrão é “0.75”; você pode alterá-lo se precisar atualizar a pontuação de confiança.
  4. Execute o comando para gerar a pilha do CloudFormation e implantar os recursos:
    bash ./scripts/deploy.sh region cfn-stack-name

Se não quiser criar o fluxo de contato do zero no Amazon Connect, você poderá importar o fluxo de amostra fornecido com este repositório filelocation: /contactflowsample/samplecontactflow.json.

  1. Faça login no seu Instância Amazon Connect. A conta deve receber um perfil de segurança que inclua permissões de edição para fluxos.
  2. No console do Amazon Connect, no painel de navegação, em Roteamento, escolha Fluxos de contato.
  3. Crie um novo fluxo do mesmo tipo daquele que você está importando.
  4. Escolha Salvar e importar fluxo.
  5. Selecione o arquivo a ser importado e escolha importação.

Quando o fluxo é importado para um fluxo existente, o nome do fluxo existente também é atualizado.

  1. Revise e atualize quaisquer referências resolvidas ou não resolvidas conforme necessário.
  2. Para salvar o fluxo importado, escolha Salvar. Para publicar, escolha Salvar e publicar.
  3. Depois de fazer upload do fluxo de contato, atualize as seguintes configurações:
    • Atualize o GetCustomerInput blocos com o nome e a versão corretos do bot do Amazon Lex.
    • Em Gerenciar número de telefone, atualize o número com o fluxo de contato ou IVR importado anteriormente.

Verifique a configuração

Verifique se a função do Lambda criada com a pilha do CloudFormation tem uma função do IAM com permissões para recuperar bots e informações de intenção do Amazon Lex (permissões de lista e leitura) e permissões apropriadas do Amazon Bedrock (permissões de lista e leitura).

No bot do Amazon Lex, para o alias e o idioma configurados, verifique se a função do Lambda foi configurada corretamente. Para o FallBackIntent, confirme que Fulfillmentis definido para Active para poder executar a função sempre que o FallBackIntent é acionado.

Nesse ponto, o bot do Amazon Lex executará automaticamente a função Lambda e a solução deverá funcionar perfeitamente.

Teste a solução

Vejamos um exemplo de configuração de intenção, descrição e expressão no Amazon Lex e vejamos o desempenho do LLM com exemplos de entradas que contêm erros de digitação, erros gramaticais e até mesmo um idioma diferente.

A figura a seguir mostra capturas de tela do nosso exemplo. O lado esquerdo mostra o nome da intenção, sua descrição e um exemplo de expressão de uma única palavra. Sem muita configuração no Amazon Lex, o LLM é capaz de prever a intenção correta (lado direito). Neste teste, temos uma mensagem simples de cumprimento da intenção correta.

limpar

Para limpar seus recursos, execute o seguinte comando para excluir o repositório ECR e a pilha do CloudFormation:

bash ./scripts/cleanup.sh region repository-name cfn-stack-name

Conclusão

Ao usar o Amazon Lex aprimorado com LLMs fornecidos pelo Amazon Bedrock, você pode melhorar o desempenho de reconhecimento de intenções dos seus bots. Isto proporciona uma experiência de autoatendimento perfeita para um conjunto diversificado de clientes, preenchendo a lacuna entre sotaques e características únicas de fala e, em última análise, aumentando a satisfação do cliente.

Para se aprofundar e aprender mais sobre IA generativa, confira estes recursos adicionais:

Para obter mais informações sobre como você pode experimentar a solução generativa de autoatendimento baseada em IA, consulte Implante respostas de perguntas de autoatendimento com a solução QnABot na AWS desenvolvida pelo Amazon Lex com Amazon Kendra e grandes modelos de linguagem.


Sobre os autores

Hamza Nadeem é arquiteto de soluções especialista em Amazon Connect na AWS, com sede em Toronto. Ele trabalha com clientes em todo o Canadá para modernizar seus Contact Centers e fornecer soluções para seus desafios exclusivos de envolvimento do cliente e requisitos de negócios. Nas horas vagas, Hamza gosta de viajar, jogar futebol e experimentar novas receitas com a esposa.

Parag Srivastava é arquiteto de soluções na Amazon Web Services (AWS), ajudando clientes corporativos com adoção e migração de nuvem com sucesso. Durante sua carreira profissional, ele esteve amplamente envolvido em projetos complexos de transformação digital. Ele também é apaixonado por criar soluções inovadoras em torno de aspectos geoespaciais de endereços.

Ross Infelizmente é arquiteto de soluções na AWS e mora em Toronto, Canadá. Ele ajuda os clientes a inovar com soluções de IA/ML e IA generativa que levam a resultados de negócios reais. Ele trabalhou com uma variedade de clientes de varejo, serviços financeiros, tecnologia, produtos farmacêuticos e outros. Nas horas vagas adora atividades ao ar livre e curtir a natureza com a família.

Sangeetha Kamatkar é arquiteto de soluções na Amazon Web Services (AWS), ajudando clientes na adoção e migração bem-sucedidas da nuvem. Ela trabalha com clientes para criar arquiteturas de nuvem altamente escaláveis, flexíveis e resilientes que atendam aos problemas de negócios dos clientes. Nas horas vagas, ela ouve música, assiste filmes e gosta de jardinagem no verão.

local_img

Inteligência mais recente

local_img