Inteligência de dados generativa

Integre QnABot na AWS com ServiceNow | Amazon Web Services

Data:

Seus funcionários esperam horas ao telefone para abrir um ticket de TI? Eles esperam que um agente faça a triagem de um problema, o que às vezes requer apenas a reinicialização do computador? Fornecer excelente suporte de TI é crucial para qualquer organização, mas os sistemas legados dependem muito da disponibilidade de agentes humanos para receber relatórios e resolver problemas de triagem. A IA conversacional (ou chatbots) pode ajudar na triagem de alguns desses problemas comuns de TI e criar um ticket para as tarefas quando a assistência humana for necessária. Os chatbots resolvem rapidamente problemas comerciais comuns, melhoram a experiência dos funcionários e liberam o tempo dos agentes para lidar com problemas mais complexos.

QnABot na AWS é uma solução de código aberto construída usando serviços nativos da AWS, como Amazon-Lex, Serviço Amazon OpenSearch, AWS Lambda, Amazon Transcribe e Amazon Polly. O QnABot versão 5.4+ também foi aprimorado com capacidades generativas de IA.

De acordo com o Quadrante Mágico do Gartner 2023, ServiceNow é um dos principais fornecedores de gerenciamento de serviços de TI (ITSM) do mercado. O gerenciamento de incidentes da ServiceNow usa fluxos de trabalho para identificar, rastrear e resolver incidentes de serviços de TI de alto impacto.

Nesta postagem, demonstramos como integrar a solução QnABot on AWS chatbot com ServiceNow. Com essa integração, os usuários podem conversar com o QnABot para fazer a triagem de seus problemas de serviço de TI e abrir um ticket de incidente no ServiceNow em tempo real, fornecendo detalhes ao QnABot.

Assista ao vídeo a seguir para ver como os usuários podem fazer perguntas a um chatbot do service desk de TI e obter respostas. Para as perguntas mais frequentes, as respostas do chatbot podem ajudar a resolver o problema. Quando um usuário determina que as respostas fornecidas não são úteis, ele pode solicitar a criação de um ticket no ServiceNow.

Visão geral da solução

QnABot na AWS é um chatbot multicanal e multilíngue que responde às perguntas, respostas e feedback do seu cliente. QnABot na AWS é uma solução completa e pode ser implantada como parte do fluxo de trabalho de emissão de tickets do Service Desk de TI. Sua arquitetura distribuída permite integrações com outros sistemas como ServiceNow. Se você deseja criar seu próprio chatbot usando o Amazon Lex ou adicionar apenas o Amazon Lex como parte do seu aplicativo, consulte Integre o ServiceNow ao chatbot do Amazon Lex para processamento de tíquetes.

O diagrama a seguir ilustra a arquitetura da solução.

O fluxo de trabalho inclui as seguintes etapas:

  1. Um administrador do QnABot pode configurar as perguntas usando a UI do Content Designer fornecida por Gateway de API da Amazon e Serviço de armazenamento simples da Amazon (Amazônia S3).
  2. A função Content Designer Lambda salva a entrada no OpenSearch Service no índice do banco de uma pergunta.
  3. Quando os usuários do QnABot fazem perguntas que solicitam a integração do ServiceNow, o Amazon Lex busca as perguntas e solicita que o usuário forneça uma descrição do problema. Quando a descrição é fornecida, ela invoca uma função Lambda.
  4. A função Lambda busca segredos de Gerenciador de segredos da AWS, onde as variáveis ​​de ambiente são armazenadas, e faz uma chamada HTTP para criar um ticket no ServiceNow. O número do ticket é então devolvido ao usuário.

Ao criar um fluxo de trabalho de diagnóstico, você pode precisar de informações para diferentes perguntas antes de criar um ticket no ServiceNow. Você pode usar bots de resposta e os recursos de encadeamento de documentos do QnABot para obter esse recurso.

Bots de resposta são bots criados para obter uma resposta dos usuários e armazená-la como parte de variáveis ​​de sessão ou como parte de valores de slot. Você pode usar bots de resposta integrados ou criar um bot de resposta personalizado. Os nomes dos chatbots de resposta devem começar com as letras “QNA”.

Esta solução fornece um conjunto de bots de resposta integrados. Referir-se Configurando o chatbot para fazer perguntas e usar bots de resposta para detalhes de implementação.

Você pode usar o encadeamento de documentos para obter a resposta e invocar funções do Lambda. A regra de encadeamento é uma expressão de programação JavaScript usada para testar o valor do atributo de sessão definido para obter uma resposta e rotear para outro bot ou invocar funções Lambda. Você pode identificar a próxima pergunta no documento identificando o ID da pergunta (QID) especificado no campo Encadeamento de Documentos:Regra de Encadeamento campo como 'QID::' seguido pelo valor QID do documento. Por exemplo, uma regra avaliada como “QID::Admin001” será encadeada ao item Admin.001.

Ao usar uma regra de encadeamento para Lambda, o nome da função deve começar com as letras “QNA” e é especificado no campo Encadeamento de Documentos:Regra de Encadeamento campo como 'Lambda::FunctionNameorARN'. Todas as regras de encadeamento devem ser colocadas entre aspas simples.

Implantar a solução QnABot

Conclua as etapas a seguir para implementar a solução:

  1. Escolha Iniciar solução no QnABot guia de implementação para implantar o modelo QnABot mais recente via Formação da Nuvem AWS.
  2. Forneça um nome para o bot.
  3. Forneça um e-mail onde você receberá um e-mail para redefinir sua senha.
  4. Certifique-se de que HabilitarCognitoLogin está definido para verdadeiro.
  5. Para todos os outros parâmetros, aceite os padrões (veja o guia de implementação para definições de parâmetros) e inicie a pilha QnABot.

Esta postagem usa uma página estática hospedada em Amazon CloudFront, e o chatbot QnABot é incorporado na página usando o Plug-in de exemplo de UI da web do Amazon Lex. Também fornecemos instruções para testar esta solução usando a página do cliente QnABot.

Crie uma conta ServiceNow

Esta seção percorre as etapas para criar uma conta ServiceNow e uma instância de desenvolvedor ServiceNow:

  1. Primeiro, inscreva-se para uma conta ServiceNow.

  1. Vá para o seu e-mail e confirme este endereço de e-mail para o seu ID ServiceNow.
  2. Como parte da verificação, você será solicitado a fornecer o código de verificação de seis dígitos enviado para seu e-mail.
  3. Você pode pular a página que solicita a configuração da autenticação de dois fatores. Você é redirecionado para a página inicial do programa ServiceNow Developer.
  4. No Iniciando etapas, escolha Sim, preciso de um IDE orientado ao desenvolvedor.

  1. Escolha Comece a construir para configurar uma instância.

Quando a compilação for concluída, o que pode levar de alguns segundos a minutos, você receberá o URL da instância, o nome de usuário e os detalhes da senha. Salve essas informações para usar em etapas posteriores.

  1. Faça login no site usando o seguinte URL (forneça sua instância): https://devXXXXXX.service-now.com/now/nav/ui/classic/params/target/change_request_list.do.

Certifique-se de permanecer conectado à instância do desenvolvedor ServiceNow durante todo o processo.

Se estiver desconectado, use seu e-mail e senha para fazer login novamente e ativar a instância e evitar a hibernação.

  1. Escolha Todos os Produtos na barra de navegação e escolha Incidentes.

  1. Selecionar Todos os Produtos para remover todos os filtros.

Todos os incidentes serão mostrados nesta página.

Crie usuários no ServiceNow e um pool do Amazon Cognito

Você pode criar um incidente usando o ID do usuário do chatbot. Para isso, precisamos confirmar se o userId do usuário do chatbot existe no ServiceNow. Primeiro, criamos o usuário ServiceNow e depois criamos um usuário com o mesmo ID em um Amazon Cognito grupo de usuários. Amazon Cognito é um serviço da AWS para autenticar clientes e fornecer credenciais temporárias da AWS.

  1. Crie um usuário ServiceNow. Certifique-se de incluir um nome, sobrenome e e-mail.

Anote o ID do usuário recém-criado. Você precisará disso ao criar um usuário do Amazon Cognito em um grupo de usuários.

  1. No console do Amazon Cognito, escolha Grupos de usuários no painel de navegação.

Se você implantou o plug-in de UI da Web do Amazon Lex, verá dois nomes de grupos de usuários; caso contrário, você verá apenas um nome de grupo de usuários.

  1. Selecione o grupo de usuários que tem seu nome QnABot e crie um novo usuário. Use o mesmo userId do usuário do ServiceNow.
  2. Se você estiver usando a interface web do Amazon Lex, crie um usuário no grupo de usuários apropriado do Amazon Cognito seguindo as etapas anteriores.

Observe que o userId que você criou será usado para o cliente QnABot e o cliente Amazon Lex Web UI.

Crie uma função Lambda para invocar o ServiceNow

Nesta etapa, você cria uma função Lambda que invoca a API ServiceNow para criar um ticket.

  1. No console do Lambda, escolha Funções no painel de navegação.
  2. Escolha Criar função.

  1. Selecionar Autor do zero.
  2. Escolha função nome, insira um nome, como qna-ChatBotLambda. (Lembre-se de que QnABot requer o prefixo qna- no nome.)
  3. Escolha Runtime, escolha Node.js 18.x.

Esta função Lambda cria uma nova função. Se quiser usar uma função existente, você pode alterar o padrão Gerenciamento de acesso e identidade da AWS (IAM) selecionando Usar função existente.

  1. Escolha Criar função.
  2. Depois de criar a função, use o editor embutido para editar o código de index.js.
  3. Clique com o botão direito do mouse em index.js e renomeie-o para index.mjs.
  4. Insira o código a seguir, que é um exemplo de código para a função que você está usando como camada de computação para nossa lógica:
import AWS from '@aws-sdk/client-secrets-manager'; const incident="incident";
const secret_name = "servicenow/password"; export const handler = async (event, context) => { console.log('Received event:',JSON.stringify(event, null,2)); // make async call createticket which creates serviceNow ticket await createTicket( event).then(response => event=response); return event; }; // async function to create servicenow ticket
async function createTicket( event){ var password=''; await getSecretValue().then(response => password=response); // fetch description and userid from event var shortDesc = event.req._event.inputTranscript; console.log("received slots value", shortDesc); // userName of the logged in user var userName= event.req._userInfo.UserName; console.log("userId", userName); console.log("password from secrets manager::", password); // description provided by user is added to short_description var requestData = { "short_description": shortDesc, "caller_id": userName }; var postData = JSON.stringify(requestData); // create url from hostname fetched from envrionment variables. Remaining path is constant. const url = "https://"+process.env.SERVICENOW_HOST+":443/api/now/table/"+incident; // create incident in servicenow and return event with ticket information try { await fetch(url,{ method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Basic ' + Buffer.from(process.env.SERVICENOW_USERNAME + ":" + password).toString('base64'), 'Content-Length': Buffer.byteLength(postData), }, 'body': postData }).then(response=>response.json()) .then(data=>{ console.log(data); var ticketNumber = data.result.number; var ticketType = data.result.sys_class_name; event.res.message="Done! I've opened an " + ticketType + " ticket for you in ServiceNow. Your ticket number is: " + ticketNumber + "."; }); return event; } catch (e) { console.error(e); return 500; } } // get secret value from secrets manager
async function getSecretValue(){ var secret; var client = new AWS.SecretsManager({ region: process.env.AWS_REGION }); // await to get secret value try { secret = await client.getSecretValue({SecretId: secret_name}); } catch (err) { console.log("error", err); } const secretString = JSON.parse(secret.SecretString); return secretString.password;
}

Esta função usa a API ServiceNow Incident. Para obter mais informações, consulte Criar um incidente.

  1. Escolha Implantação para implantar esse código na versão $LATEST da função Lambda.
  2. No Configuração guia, no Variáveis ​​ambientais seção, adicione o seguinte:
      • Adicionar SERVICENOW_HOST com o valor devXXXXXX.service-now.com.
      • Adicionar SERVICENOW_USERNAME com o valor admin.

  3. Copie o ARN da função Lambda. Você precisará dele posteriormente.

A próxima etapa é armazenar seu nome de usuário e senha do ServiceNow no Secrets Manager.

  1. No console do Secrets Manager, crie um novo segredo.
  2. Selecionar Outro tipo de segredo.
  3. Adicione seus pares de valores-chave conforme mostrado e escolha Próximo.

  1. Escolha Nome secreto, insira um nome descritivo (para esta postagem, servicenow/password). Se você escolher um nome diferente, atualize o valor de const secret_name no código da função Lambda.
  2. Escolha Próximo.
  3. Deixar Configurar rotação no padrão e escolha Próximo.
  4. Revise as informações secretas e escolha Loja.
  5. Copie o ARN do segredo recém-criado.

Agora vamos conceder permissões do Lambda ao Secrets Manager.

  1. Na página da função Lambda, acesse a página configurações guia e navegue até o Permissões seção.

  1. Escolha o nome da função de execução para abrir a página do IAM da função.
  2. Na política in-line a seguir, forneça o ARN do segredo criado anteriormente:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SecretsManagerRead", "Effect": "Allow", "Action": ["secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecrets", "secretsmanager:ListSecretVersionIds"
], "Resource": "<ARN>" } ]
}

  1. Adicione a política embutida à função.

Definir configurações do QnABot

Nesta seção, primeiro criamos algumas questões de conhecimento usando o recurso Perguntas do QnABot. Em seguida, criamos um bot de resposta que obtém uma resposta de um usuário quando ele pede ajuda. Este bot usa encadeamento de documentos para chamar outro bot e aciona o Lambda para criar um ticket do ServiceNow.

Para obter mais informações sobre como usar o QnABot com IA generativa, consulte Implante respostas de perguntas de autoatendimento generativas de IA usando a solução QnABot na AWS desenvolvida pelo Amazon Lex com Amazon Kendra e Amazon Bedrock.

Crie a pergunta de conhecimento 1

Crie uma pergunta de conhecimento para instalação de software:

  1. No console do AWS CloudFormation, navegue até a pilha QnABot.
  2. No Saídas guia e abra o link para ContentDesignerURL.
  3. Faça login no QnABot Content Designer usando credenciais de administrador.
  4. Escolha Adicionar para adicionar uma nova pergunta.
  5. Selecionar qna.
  6. Escolha ID do item, insira software.001.
  7. Debaixo Perguntas/Declarações, digite o seguinte:
    a.	How to install a software b.	How to install developer tools c.	can you give me instructions to install software 

  8. Debaixo Resposta, digite a seguinte resposta:
Installing from Self Service does not require any kind of permissions or admin credentials. It will show you software that is available for you, without any additional requests.
1. Click the search icon in the menu at the top. Type Self Service and press Enter.
2. Sign in with your security key credentials.
3. Search for your desired software in the top right corner.
4. Click the Install button.

  1. Expandir o Avançado seção e insira o mesmo texto em Resposta de remarcação.

  1. Deixe o resto como padrão e escolha Crie para salvar a pergunta.

Crie a pergunta de conhecimento 2

Agora você cria a segunda questão de conhecimento.

  1. Escolha Adicionar para adicionar uma nova pergunta.
  2. Selecionar qna.
  3. Escolha ID do item, entrar knowledge.001.
  4. Debaixo Perguntas/Declarações, entrar Want to learn more about Amazon Lex.
  5. Debaixo Resposta, digite a seguinte resposta:
### Amazon Lex
Here is a video of Amazon Lex Introduction <iframe width="580" height="327" src="https://www.youtube.com/embed/Q2yJf4bn5fQ" title="Conversational AI powered by Amazon Lex | Amazon Web Services" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
Do you want to learn more about it?<br>
Here are some resources<br>
1. [Introduction to Amazon Lex](https://explore.skillbuilder.aws/learn/course/external/view/elearning/249/introduction-to-amazon-lex)
2. [Building better bots using Amazon Connect](https://explore.skillbuilder.aws/learn/course/external/view/elearning/481/building-better-bots-using-amazon-connect)
3. [Amazon Lex V2 getting started- Streaming APIs](https://aws.amazon.com/blogs/machine-learning/delivering-natural-conversational-experiences-using-amazon-lex-streaming-apis/)

  1. Expandir o Avançado seção e insira a mesma resposta em Resposta de remarcação.

  1. Deixe o resto como padrão e escolha Crie para salvar a pergunta.

Crie a pergunta de conhecimento 3

Conclua as etapas a seguir para adicionar outra pergunta de conhecimento:

  1. Escolha Adicionar para adicionar uma nova pergunta.
  2. Selecionar qna.
  3. Escolha ID do item, entrar password.reset.
  4. Debaixo Perguntas/Declarações, digite Preciso redefinir minha senha.
  5. Debaixo Resposta, digite a seguinte resposta:
#### Password Reset Instructions
Please follow below instructions to reset your password
1. Please go to AnyTech's IT web page. 2. Use the Password Reset Tool on the left hand navigation. 3. In the Password Reset Tool, provide your new password and save. 4. Once you change your password, please log out of your laptop and login.
<br><br>
**Note**: If you are logged out of your computer, you can ask your manager to reset the password.

  1. Expandir o Avançado seção e insira o mesmo texto para Resposta de remarcação.
  2. Escolha Crie para salvar a pergunta.

Crie um bot de resposta

Conclua as etapas a seguir para criar o bot de primeira resposta, que gera uma resposta:

  1. Escolha Adicionar para adicionar uma nova pergunta.
  2. Selecionar qna.
  3. Escolha ID do item, entrar ElicitResponse.001.
  4. Debaixo Perguntas/Declarações, entrar Please create a ticket.
  5. Debaixo Resposta, digite a seguinte resposta:
Sure, I can help you with that!! Please give a short description of your problem.

  1. Expandir o Avançado seção e navegue até o Obter resposta seção.
  2. Escolha Obter resposta: Gancho ResponseBot, entrar QNAFreeText.
  3. Escolha Elicitar resposta: namespace do atributo da sessão de resposta, entrar short_description.

Isso cria um slot chamado short_description que captura a resposta ou descrição do incidente. Este slot usa o QNAFreeText integrado, que é usado para capturar texto livre.

  1. Escolha Encadeamento de Documentos: Regra de Encadeamento, entrar QID::item.002. Deve estar entre aspas simples. Lembre-se desta regra de encadeamento para usar ao criar sua cadeia de documentos.
  2. Deixe o resto como padrão.

  1. Escolha Crie para salvar a pergunta.

Crie uma cadeia de documentos

Agora criamos uma cadeia de documentos no QnABot que acionará a função Lambda para criar um ticket e responder com um número de ticket. O encadeamento de documentos permite encadear dois bots com base na regra que você configurou. Conclua as seguintes etapas:

  1. Escolha Adicionar para adicionar uma nova pergunta.
  2. Selecionar qna.
  3. Escolha ID do item, entrar item.002. Isso deve corresponder ao valor QID fornecido anteriormente na regra da cadeia de documentos.
  4. Debaixo Perguntas/Declarações, entrar servicenow integration.
  5. Debaixo Resposta, digite a seguinte resposta:
There was an error, please contact system administrator

  1. No Avançado seção, adicione o ARN da função Lambda para Gancho lambda.

  1. Escolha Crie para salvar a pergunta.

Teste o QnABot

Para testar o cliente padrão QnABot, conclua as etapas a seguir:

  1. Escolha o menu de opções no Designer de conteúdo e escolha Cliente QnABot.

O cliente QnABot será aberto em uma nova guia do navegador.

  1. Faça login usando as credenciais de usuário recém-criadas para iniciar o teste.

Se você planeja usar a UI Web do Amazon Lex em uma página estática, siga estas instruções.

  1. Escolha o ícone de bate-papo na parte inferior da página para iniciar o bate-papo.
  2. Para fazer login, escolha Entrar no menu.

Você será direcionado para a página de login.

  1. Proporciona a userId criado anteriormente.
  2. Para logins pela primeira vez, você será solicitado a redefinir sua senha.

  1. Agora podemos testar o chatbot com exemplos de casos de uso. Para nosso primeiro caso de uso, queremos aprender sobre a Amazon e inserir a pergunta “Quero aprender sobre o Amazon Lex, você pode me dar algumas informações sobre isso?” QnABot fornece um vídeo e alguns links para recursos.

  1. Em nosso próximo exemplo, precisamos instalar o software em nosso laptop e perguntar “Você pode me dar instruções para instalar o software”. QnABot entende que o usuário está solicitando ajuda para instalar o software e fornece respostas do banco de conhecimento. Você pode seguir essas instruções e instalar o software necessário.

  1. Ao instalar o software, e se você bloqueasse sua senha devido a várias tentativas de login malsucedidas? Para solicitar uma redefinição de senha, você pode perguntar “Preciso redefinir minha senha”.

  1. Talvez você precise de assistência adicional para redefinir a senha e queira criar um ticket. Neste caso, digite “Por favor, crie um ticket”. QnABot pede uma descrição do problema; você pode inserir “redefinir senha”. QnAbot cria um ticket com a descrição fornecida e fornece o número do ticket como parte da resposta.

  1. Você pode verificar se o tíquete de incidente foi criado no console do ServiceNow em Incidentes. Caso o ticket não apareça na primeira página, pesquise o número do ticket usando a barra de ferramentas de pesquisa.

limpar

Para evitar cobranças futuras, exclua os recursos que você criou. Para obter instruções sobre como desinstalar o plug-in da solução QnABot, consulte Desinstale a solução.

Conclusão

A integração do QnABot na AWS com o ServiceNow fornece uma solução ponta a ponta para suporte automatizado ao cliente. Com os recursos de IA conversacional do QnABot para entender as dúvidas dos clientes e os recursos robustos de gerenciamento de incidentes do ServiceNow, as empresas podem agilizar a criação e resolução de tickets. Você também pode estender esta solução para mostrar uma lista de tickets criados pelo usuário. Para obter mais informações sobre como incorporar essas técnicas em seus bots, consulte QnABot na AWS.


Sobre os autores

Sujatha Dantuluri é arquiteto de soluções sênior na equipe civil federal dos EUA na AWS. Ela tem mais de 20 anos de experiência apoiando governos comerciais e federais. Ela trabalha em estreita colaboração com os clientes na construção e arquitetura de soluções de missão crítica. Ela também contribuiu para os padrões IEEE.

Maia Hailé é arquiteto de soluções na Amazon Web Services baseado na área de Washington, DC. Nessa função, ela ajuda clientes do setor público a atingir seus objetivos de missão com soluções bem arquitetadas na AWS. Ela tem 5 anos de experiência em organizações sem fins lucrativos de saúde, mídia e entretenimento e varejo. Sua paixão é usar IA e ML para ajudar clientes do setor público a atingir seus objetivos comerciais e técnicos.

local_img

Inteligência mais recente

local_img