Mr. Cosmos: Seu Watson Assistant sobre Galáxias, Universo e Muito Mais...
- #Inteligência Artificial (IA)
- #Machine Learning
Introdução
O universo é um lugar fascinante e misterioso, repleto de galáxias, planetas e fenômenos cósmicos intrigantes. Neste artigo, vamos explorar como criar um chatbot, chamado Mr. Cosmos, usando o IBM Watson Assistant, Api da Nasa, IBM Function, Webhook e um pouco de python, que pode responder a perguntas sobre o universo e até mesmo fornecer imagens incríveis de galáxias e planetas. Vamos passar por cada etapa, desde a criação da conta na IBM até o desenvolvimento do assistente.
Antes de mais nada...
O que é Watson Assistant?
O IBM Watson™ Assistant é um serviço que combina aprendizado de máquina, compreensão de linguagem natural e um editor de diálogo integrado para criar fluxos de conversação entre seus aplicativos e seus usuários.
Ele permite que você construa interfaces de conversação em qualquer aplicativo, dispositivo ou canal. Comumente usado para criar agentes virtuais e chatbots, o Watson Assistant pode se conectar aos recursos de engajamento do cliente que você já usa para fornecer uma experiência unificada e envolvente para seus clientes3.
Além disso, o Watson Assistant oferece a capacidade de analisar métricas e logs de conversas entre clientes e seu assistente para avaliar seu desempenho e identificar áreas para melhoria.
Mas como ele funciona, de verdade?
O IBM Watson Assistant funciona através de uma combinação de várias tecnologias de inteligência artificial, incluindo aprendizado de máquina e processamento de linguagem natural, talvez o processo mais recorrente seja o NLU.
Mas o que d*!@!$!@ é NLU?
Também chamada de Compreensão da linguagem natural (NLU), ou Processamento de Linguagem Natural (NLP), é um método de machine learning para entender a intenção do usuário a partir de sua entrada. Isso permite que ele interprete a linguagem humana da maneira como é falada ou escrita, permitindo uma interação mais natural com o usuário.
E o que é Machine Learning?
Oras, o pessoal de T.I gosta de palavras em inglês, né? Traduzindo de forma literal é Aprendizado de Máquina. O Watson Assistant usa algoritmos de aprendizado de máquina para melhorar continuamente sua capacidade de interpretar as entradas do usuário e fornecer respostas precisas. Ele aprende com cada interação, tornando-se mais preciso e eficiente ao longo do tempo.
Agora que estamos explicados, vamos falar um pouco sobre o contexto do Watson, a qual contexto ele opera.
De forma simples, existem alguns contextos que devemos nos atentar: Intenção, Entidades, Diálogo e Nós.
· Diálogos: No Watson Assistant, você pode criar diálogos que guiam as conversas com os usuários. Os diálogos usam intenções (o que o usuário quer fazer), entidades (informações específicas que o usuário fornece) e ações (o que o assistente deve fazer em resposta) para determinar como responder a uma entrada do usuário.
· Intenção: As intenções são os objetivos que o usuário está tentando realizar. Você treina o Watson Assistant para detectar intenções fornecendo exemplos do que seus usuários diriam (às vezes chamados de “enunciados do usuário”) para expressar essa intenção ou objetivo. As intenções são as ações/verbos que o usuário está tentando alcançar. Um exemplo de intenção pode ser “comprar_roupa”. Exemplos de enunciados do usuário para essa intenção podem incluir “Eu quero comprar uma camiseta nova” ou “Estou procurando por um vestido novo para comprar”. O Watson Assistant usaria esses exemplos para aprender a reconhecer quando um usuário está tentando comprar roupas.
- Entidades: As entidades são os objetos/substantivos. Enquanto a intenção se refere ao objetivo que o cliente tem em mente ao digitar uma pergunta ou comentário, a entidade se refere ao modificador - campos, dados ou texto, que o cliente usa para descrever sua exigência enquanto a intenção é o que eles realmente querem dizer3. Ao definir as entidades, o Watson Assistant posteriormente aprende a conexão e a identificar as entidades e intenções. Usando o mesmo exemplo da loja de roupas online, as entidades poderiam incluir coisas como “tipo_de_roupa” e “cor”. Por exemplo, em uma frase como “Eu quero comprar uma camiseta azul”, “camiseta” seria reconhecida como o valor da entidade “tipo_de_roupa” e “azul” seria reconhecido como o valor da entidade “cor”.
- Nós (Nodes): No Watson Assistant, os ‘nós’ são usados para criar os diálogos que guiam as conversas com os usuários. Os diálogos usam intenções, entidades e ações para determinar como responder a uma entrada do usuário. Contextualizando com os exemplos anteriores, você poderia ter um nó que responde à intenção “comprar_roupa”. Dentro desse nó, você poderia ter condições que verificam o valor das entidades. Por exemplo, se a entidade “tipo_de_roupa” for “camiseta” e a entidade “cor” for “azul”, o assistente poderia responder com algo como: “Ótimo, aqui estão algumas camisetas azuis que temos disponíveis agora…”.
Explicado as regras, vamos para a prática. A seguir iremos listar aqui alguns passos para realizar este chatbot. Em caso de dúvida, ao final do artigo, disponibilizarei meu contato para que possamos conversar.
Passo 1: Criação de uma Conta na IBM
Antes de começarmos, é necessário criar uma conta na IBM para acessar os serviços necessários. Siga estas etapas:
1. Acesse o site da IBM Cloud: https://cloud.ibm.com/
2. Clique em "Registrar" e siga as instruções para criar sua conta.
PS: É necessário o uso de um cartão de crédito. A IBM não irá lhe cobrar nenhum valor indevido e para fins de nosso estudo, todos os recursos aqui usados são Lite (free).
Passo 2: Consumindo a API da NASA
Para obter acesso à API da NASA e obter a chave de API necessária, siga estas etapas:
1. Visite o site da NASA API: https://api.nasa.gov/.
2. Clique em "Sign Up" para criar uma conta e obter sua chave de API.
3. Salve a sua key em um local de segurança de sua confiança.
Passo 3: Configurando a IBM Function para o Webhook
Agora, precisamos configurar uma função na IBM Cloud para criar um webhook que se conecte ao Watson Assistant. Siga estas etapas:
1. No painel da IBM Cloud, vá para "Functions" e crie uma nova função.
2. Configure a função para se conectar ao Watson Assistant e à API da NASA.
3. O código seria algo assim:
``` import requests
# Substitua 'YOUR_API_KEY' pelo valor real da sua chave de API da NASA.
api_key = 'YOUR_API_KEY'
# URL da API da NASA para obter informações sobre asteroides
url = f'https://api.nasa.gov/neo/rest/v1/feed?api_key={api_key}'
# Faça uma solicitação GET para a API da NASA
response = requests.get(url)
# Imprima a resposta da API
print(response.json()) ```
4. Crie um endpoint para o webhook.
Passo 4: Desenvolvimento do Assistente no Watson
Nesta seção, iremos detalhar como criar o assistente no IBM Watson Assistant e configurá-lo para interagir com o webhook que criamos anteriormente.
1. Criando Intenções e Entidades
Intenções representam os objetivos ou intenções que os usuários podem ter ao interagir com o assistente. Neste caso, algumas intenções relevantes podem ser:
· Obter imagem de galáxia: Esta intenção pode ser acionada quando o usuário solicita uma imagem de uma galáxia.
· Perguntar sobre planetas: Esta intenção pode ser acionada quando o usuário pergunta sobre informações relacionadas a planetas.
· Explorar o universo: Esta intenção pode ser acionada quando o usuário deseja explorar tópicos gerais sobre o universo.
· Entidades representam informações específicas que o assistente precisa extrair das entradas dos usuários. Por exemplo, se o usuário pergunta "Mostre-me a galáxia Andrômeda," "Andrômeda" seria uma entidade importante para extrair.
Portanto, você pode criar entidades como:
· Nome da galáxia: Para extrair nomes de galáxias, como "Andrômeda" ou "Via Láctea."
· Planeta: Para extrair nomes de planetas, como "Marte" ou "Júpiter."
2. Configurando Diálogos
Você pode criar diálogos hierárquicos para guiar a conversa do assistente de forma lógica. Aqui está um exemplo de como estruturar um diálogo no Watson Assistant:
· Diálogo Principal:
· Nó de Início: Saudações e apresentação.
· Nó de Intenção: Detecta a intenção do usuário (por exemplo, "Obter imagem de galáxia").
· Nó de Entidade: Detecta a entidade relevante (por exemplo, "Nome da galáxia").
· Nó de Ação: Chama o webhook com a ação apropriada para obter a imagem da galáxia.
· Nó de Intenção: Detecta outra intenção (por exemplo, "Perguntar sobre planetas").
· Nó de Entidade: Detecta a entidade relevante (por exemplo, "Planeta").
· Nó de Ação: Chama o webhook com a ação apropriada para obter informações sobre o planeta.
· Nó de Intenção: Detecta a intenção geral (por exemplo, "Explorar o universo").
· Nó de Ação: Fornece informações gerais sobre o universo.
3. Configurando a Integração com o Webhook
A integração com o webhook que criamos anteriormente é realizada no nó de ação do diálogo, onde você define as ações apropriadas a serem tomadas com base nas intenções e entidades detectadas. Aqui, você deve configurar a ação para chamar o webhook com os parâmetros apropriados, como o nome da galáxia ou o planeta.
Exemplo de Configuração de Ação do Webhook:
· Ação: Chamar Webhook da NASA
· Parâmetros:
· Intenção: Obter imagem de galáxia
· Entidade: Nome da galáxia
· Chamada ao Webhook: (URL do seu webhook criado na IBM Function).
Nesse ponto, você configurou o assistente para reconhecer as intenções e entidades do usuário e agir de acordo com elas, chamando o webhook quando necessário para obter informações ou imagens específicas.
Consumindo a API da NASA
No nosso chatbot, quando um usuário solicitar uma imagem de galáxia, o assistente irá chamar a API da NASA, passando a entidade (nome da galáxia) como parâmetro e retornar uma imagem impressionante.
Conclusão
Neste artigo, exploramos como criar o chatbot Mr. Cosmos usando o IBM Watson Assistant. Desde a criação da conta na IBM até a integração com a API da NASA e o desenvolvimento do assistente, você aprendeu como criar um chatbot que pode responder a perguntas sobre o universo e fornecer imagens incríveis. Compreender os conceitos de intenção, entidade e ações é fundamental para projetar um assistente eficaz. Agora, você está pronto para explorar o universo com Mr. Cosmos!