- 1. Introdução
- 2. Desafio
- 3. Construção do Modelo Preditivo
- 4. Avaliação
- 5. Pré-requisitos
- 6. Treinamento do modelo
- 7. Usando IBM Cloud Functions
- 8. Crie e importe o chatbot no Watson Assistant
- 9. Aplicação na nuvem
- 10. Submissão
- 11. Modelo
Um dos grandes dilemas que todos temos quando estamos procurando algo para presentear é justamente o que comprar! São sempre tantas opções e há uma grande pressão, pois estamos em busca do presente que mais vai surpreender e agradar.
Conhecemos a pessoa a qual queremos presentear, mas como fazer para identificar qual é o presente ideal para ela?
Baseado neste dilema, o Grupo Boticário, em busca da melhor experiência para seus clientes, quer dar uma ajudinha tecnológica para essa decisão. E se pudéssemos ter além das melhores opções de presente, um assistente virtual com um sistema de recomendação de produtos?
A ideia é que o cliente possa interagir com um assistente virtual e, após responder algumas perguntas sobre a pessoa a ser presenteada, o assistente forneça sugestões de produtos mais aderentes ao perfil.
O objetivo deste desafio é criar um sistema de recomendação de produtos para seus clientes, baseado nos perfis das linhas. Para realizar esta atividade, o participante deve:
Construir um modelo preditivo usando o Watson Machine Learning (WML) e os dados disponíveis no arquivo dataset.csv; Será fornecido ao participante um Watson Assistant (WA) já configurado. Para que o Assistente Virtual, implementado pelo WA, possa recomendar produtos é necessário conectar o WA ao modelo preditivo disponibilizado pelo WML. Para que isso aconteça, o participante deverá: Implementar uma página web que recebe os dados do WA e envia para o endpoint do WML, e retorna o resultado do WML para o WA. Conectar o WA com a página implementada.
Cada participante deve criar seu próprio modelo de classificação no Watson Machine Learning, utilizando os algoritmos de classificação já presentes na ferramenta. Depois de devidamente criado, o modelo deve ser público e acessado pelo Watson Assistant.
Desta forma, através de uma interação com o Watson Assistant serão coletadas as informações do perfil desejado e assim o modelo gerado no Watson Machine Learning será consultado e a recomendação retornada para o cliente.
Para a construção do modelo preditivo, função de recomendação, o participante deverá utilizar o dataset disponível no arquivo dataset.csv.
Este dataset possui 5 atributos categóricos. O atributo que queremos aprender, ou seja, a recomendação a ser fornecida é o atributo Produto. Os demais atributos (Gênero, Hobby, Bebida, Viagem) são os atributos independentes utilizados para predizer o valor de Produto.
Este dataset possui 1.100 exemplos. Estes exemplos foram gerados através de computador simulando dados oriundos de base histórica de venda. Os atributos possuem os seguintes valores:
-
Gênero:
homem
mulher
nem_um_nem_outro
-
Hobby:
balada
bar
museu
netflix
parque
-
Bebida:
café
chope
milk_shake
suco_detox
vinho
-
Viagem:
campo
cidade
floresta
praia
-
Produto:
siage_hydraprotein_eudora
boticollection_boticario
coffee_boticario
eau_de_parfum_eudora
batom_liquido_mate_quemdisseberenice
batom_volumao_quemdisseberenice
malbec_boticario
nativaspa_boticario
impression_eudora
Em um primeiro momento, entenda o desafio e a problemática proposta. Com o dataset enviado, gere o modelo preditivo usando inteligência artificial. As colunas genero
, hobby
, bebida
e viagem
deverão ser usados como parâmetro de entrada para analisar e recomendar um produto
. O objetivo final e a avaliação serão focados na criação desse modelo para que o lojista consiga de forma assertiva, sugerir o presente mais adequado baseado no perfil indicado. Quanto mais assertivo esse modelo, mais pontos você terá. Boa sorte! 😊
Você deverá cumprir os seguintes itens:
- Registrar na Maratona Behind the Code e confirmar o e-mail de cadastro.
- Registrar na IBM Cloud e confirmar o e-mail de cadastro.
🚨 É POSSÍVEL USAR A MESMA INSTÂNCIA DO WATSON STUDIO NESTE DESAFIO 🚨
Veja o vídeo abaixo de como treinar o seu modelo de Machine Learning, usando Watson Studio.
- Crie uma instância de Watson Studio, em
Dallas
e acesse a plataforma, clicando no botão "Get Started". - Faça o treinamento, com o dataset.csv, em um Modelo de Machine Learning, usando
Modeler Flow
, e espere até concluir o treinamento.
Acesse o IBM Cloud Functions e crie uma nova função
com Node.js 10
(pode ser qualquer nome sem espaço. Ex: grupo_boticario
). Copie o conteúdo do arquivo action.js
que se encontra neste projeto (link aqui). Cole o código dentro do espaço onde já existe um código (auto gerado pela plataforma), substituindo o código existente.
Clique em "Salvar". Substitua as credenciais do serviço de Machine Learning
nas linhas 20
, 21
e 44
(Veja mais abaixo). Acesse a aba Endpoints
.
A linha 44
deve ser preenchida com o Scoring End-point
apresentado no meio e final do vídeo de treinamento do modelo.
Clique sobre o botão API-KEY
para acessar a API-KEY
do seu IBM Cloud Function (dúvidas sobre onde está as credenciais, assista novamente o vídeo sobre treinamento).
Clique sobre o ícone para copiar o API-KEY
para a área de transferência.
Crie uma instância do Watson Assistant, em Dallas
, e acesse a ferramenta de treinamento, clicando no Launch Watson Assistant
.
Importe a Skill do Lojista virtual e coloque as credenciais da Function
na aba Dialog
, no nó @Hobby
.
No Watson Assistant, após importar o Skill de Lojista virtual, acesse a aba Dialog
para alterar as credenciais da Function
dentro do nó @Hobby
.
Clique na seta >
para abrir o nó filho (child node). Vai clicando, seguindo a ordem abaixo, até chegar no nó @Hobby
onde está pré-configurado a conexão com o IBM Cloud Functions.
Bem-vindo
> getViagem
> getGenero
> getBebida
> getHobby
> @Hobby
Altere as linhas 6
e 25
do JSON editor
dentro do nó do @Hobby
.
🚨 SALVE AS CREDENCIAIS. VOCÊ IRÁ PRECISAR PARA SUBIR A APLICAÇÃO 🚨
Para pegar o IAM_APIKEY
(ou, em alguns casos, API Key
apenas), acesse o https://cloud.ibm.com/resources e veja na lista de Service
, você encontrará todos os serviços provisionados na sua conta (incluindo o Watson Assistant, Discovery, Watso Studio e Visual Recognition, serviços dos desafios 1, 2 e 3 respectivamente).
Para subir a aplicação na IBM Cloud, você deve clicar no botão
abaixo para subir usando o IBM Continuous Delivery (também conhecido como Delivery Pipeline). Você deve subir a sua aplicação em Dallas.
🚨 CLIQUE PARA SUBIR A APLICAÇÃO NA IBM CLOUD 🚨
-
Configure o
Toolchain Name
com<maratona-id>-desafio4-behindthecode
, substituindo o<maratona-id>
pelo seu ID da Maratona (Ex: 100001). Se você não souber, verifique no seu e-mail, usado no registro da Maratona, para pegar o seu ID. -
Configure o
App name
com a mesmo valor usado no item 1. -
Crie uma chave (de uso interno). Basta clicar em "Create" e depois clique em "Create" novamente. Espere um instante até carregar todas os dados. Se demorar muito (mais de 5 minutos), recarregue a página e faça novamente o passo 1 e 2. Na parte superior, você pode deixar em Washington DC ou Dallas. Já na parte inferior (abaixo do item 2), é mandatório configurar a Região de Dallas.
Clique em Eclipse Orion Web IDE
para configurar a aplicação.
Abaixo estão o passo-a-passo, obrigatório, para configurar a sua aplicação no Eclipse Orion Web IDE.
- Abra o arquivo
.env
para colocar as credenciais doWatson Assistant
,Machine Learning
e daMaratona
(lembre-se de que é o mesmo código usado para indicar novos participantes na Maratona). Preencha com os dados, após o=
(símbolo de igual). Lembre-se: As credenciais doWatson Machine Learning
estão localizados nos pontos do vídeo de treinamento do modelo.
# Credenciais para o Desafio 4
DESAFIO=4
MARATONA_ID=
# Watson Assistant
IAM_APIKEY=
WORKSPACE_ID=
# Watson Machine Learning
USERNAME=
PASSWORD=
INSTANCE_ID=
SCORING_ENDPOINT=
- Abra o arquivo
manifest.yml
e altere o<maratona-id>
com o seu ID da Maratona, o mesmo usado acima. Lembre-se: é mandatório ter a URL com o formato doname
, apresentado abaixo.
applications:
- name: <seu-id>-desafio4-behindthecode
memory: 256M
instances: 1
buildpack: sdk-for-nodejs
Clique em Create new launch configuration
e crie a configuração para a sua aplicação (que está sendo criada em background). Launch Config Name
, Application Name
e Host
devem ter o mesmo nome, com o formato <maratona-id>-desafio4-behindthecode
, igual nos itens anteriores. Clique em SAVE
para salvar as configurações.
Clique em PLAY
(primeiro botão na imagem). Espere até ficar verde
(com o status: running
). Depois, clique em Open
(terceiro botão na imagem). Vai abrir a sua aplicação, com as configurações implementadas.
🚨 TESTE BASTANTE O SEU MODELO DE TREINAMENTO 🚨
Mande várias mensagens, com variações das opções disponíveis, para ver o resultado no chat. Faça quantos testes forem necessários e, se precisar, treine e re-treine o seu modelo para melhorar cada vez mais. Quando se sentir confortável, faça a submissão do seu desafio. Lembre-se: NÃO é possível submeter mais de uma vez. Fique atento!
Através da aplicação na IBM Cloud (https://<maratona-id>-desafio4-behindthecode.mybluemix.net
), você irá clicar no botão SUBMETER DESAFIO, preencher com o seu CPF e enviar para a avaliação final.
FIQUEM LIGADOS NO SITE DA MARATONA PARA ACOMPANHAR O RANKING GERAL E O RANKING DO DESAFIO! FIQUE NA TORCIDA PARA ESTAR ENTRE OS MELHORES!
Você pode verificar um modelo de solução aqui.
- O que é a IBM Cloud e como subir a sua primeira aplicação na nuvem
- Making programmatic calls from a dialog node
-
No
Logs
da aplicação, apresentou um erro (em vermelho). O que pode ser?Resposta: Veja se você colocou as credenciais da Maratona, Watson Assistant e Machine Learning no arquivo
.env
e se o arquivomanifest.yml
está correto, conforme descrito acima. Veja se a sua aplicação está rodando na URL correta conforme descrito acima.
Acesse o slack e mande a sua dúvida: ibm.biz/convite-slack.
Baixe o PDF do desafio aqui.
Copyright 2019 Maratona Behind the Code
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.