Skip to content

maratonadev/desafio-4-2019

Repository files navigation

Platform Slack

Desafio 04 | Grupo Boticário

Para te ajudar

1. Introdução

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?

2. Desafio

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.

3. Construção do Modelo Preditivo

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

4. Avaliação

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! 😊

5. Pré-requisitos

Você deverá cumprir os seguintes itens:

6. Treinamento do modelo

🚨 É 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.

7. Usando IBM Cloud Functions

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.

7.1. Credenciais do Machine Learning e Watson Assistant

🚨 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).


Lista de recursos na conta



Watson Assistant

IAM_APIKEY na IBM Cloud

WORKSPACE_ID dentro do Watson Assistant



Machine Learning

9. Aplicação na nuvem

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 🚨

Deploy to IBM Cloud

9.1. Veja como configurar o IBM Continuous Delivery

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

  2. Configure o App name com a mesmo valor usado no item 1.

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

9.2. Credenciais na aplicação

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.

  1. Abra o arquivo .env para colocar as credenciais do Watson Assistant, Machine Learning e da Maratona (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 do Watson 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=
  1. 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 do name, 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.

10. Submissão

🚨 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!

11. Modelo

Você pode verificar um modelo de solução aqui.

Material de apoio

Troubleshooting

  1. 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 arquivo manifest.yml está correto, conforme descrito acima. Veja se a sua aplicação está rodando na URL correta conforme descrito acima.

Dúvidas

Acesse o slack e mande a sua dúvida: ibm.biz/convite-slack.

PDF do Desafio

Baixe o PDF do desafio aqui.

License

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.

About

Desafio 4 ~ Grupo Boticário

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published