Ler em outros idiomas: Inglês, 한국어 Nesta jornada do desenvolvedor, criaremos um chatbot baseado no Watson Assistant que ajuda o usuário a: 1) localizar itens para comprar usando o Watson Discovery e 2) adicionar e remover itens do carrinho atualizando um banco de dados NoSQL do Cloudant. Após concluir esta jornada, o leitor saberá como:
- Criar um diálogo do chatbot com o Watson Assistant
- Armazenar e atualizar dinamicamente um banco de dados NoSQL do Cloudant com base nos resultados do chatbot
- Enviar dados para o Watson Discovery e utilizar seus recursos de linguagem natural
- Gerenciar e personalizar um grupo do Slack para incluir um chatbot
Deseja levar seu aplicativo do Watson ao próximo nível? Quer aproveitar os ativos da marca Watson? Participe do programa With Watson, que oferece recursos técnicos, de marketing e da marca exclusivos para amplificar e acelerar sua solução comercial incorporada do Watson.
- IBM Watson Assistant
- IBM Watson Discovery
- Banco de dados NoSQL IBM Cloudant
- Slack
- Python
OBSERVAÇÃO: realize as etapas de 1 a 7 OU clique no botão Deploy to Bluemix
e pressione Deploy
e, a seguir, avance para a etapa 6. > Como não há uma interface com o usuário da web (somente o Slack), não use o botão View app
para ver o aplicativo. Utilize o painel do Bluemix para localizar e gerenciar o aplicativo. Use sua interface com o usuário do Slack para conversar.
- Clonar o repositório
- Criar serviços do Bluemix
- Obter credenciais do Bluemix e incluir em .env
- Configurar o Watson Assistant
- Configurar o Watson Discovery
- Configurar o Slack
- Executar o aplicativo
Em um terminal, execute $ git clone https://github.com/ibm/watson-online-store
. Utilizaremos o arquivo data/workspace.json
e a pasta data/ibm_store_html/
Enquanto cria os serviços do Bluemix, você precisará criar credenciais de serviços e obter o nome do usuário e a senha:
Mova o arquivo watson-online-store/env.sample para /.env e preencha as credenciais de serviço (e a URL do Cloudant) enquanto cria as credenciais:
# Watson conversation CONVERSATION_USERNAME=<add_conversation_username>
CONVERSATION_PASSWORD=<add_conversation_password>
WORKSPACE_ID=<add_conversation_workspace>
# Cloudant DB CLOUDANT_USERNAME=<add_cloudant_username>
CLOUDANT_PASSWORD=<add_cloudant_password>
CLOUDANT_DB_NAME=watson_online_store CLOUDANT_URL=<add_cloudant_url>
# Watson Discovery DISCOVERY_USERNAME=<add_discovery_username>
DISCOVERY_PASSWORD=<add_discovery_password>
DISCOVERY_ENVIRONMENT_ID=<add_discovery_environment>
DISCOVERY_COLLECTION_ID=<add_discovery_collection>
# Slack SLACK_BOT_TOKEN=<add_slack_bot_token>
SLACK_BOT_USER=wos
Acione a ferramenta Watson Assistant. Use o botão com o ícone de importação à direita
Localize a versão local de data/workspace.json
e selecione Import. Para localizar o ID da área de trabalho, clique no menu de contexto da nova área de trabalho e selecione View details.
Insira o ID da área de trabalho no arquivo .env como WORKSPACE_ID.
Como opção, para visualizar o diálogo do Assistant, selecione a área de trabalho e escolha a guia Dialog. Este é um fragmento do diálogo:
Quando fizer isso pela primeira vez, você verá “Before working with private data, we will need to set up your storage”. Clique em “Continue” e aguarde a configuração do armazenamento. Crie uma nova coleção de dados e atribua um nome exclusivo para ela.
Para enviar o conteúdo, selecione Add data to this collection no diálogo e escolha os arquivos HTML em data/ibm_store_html/
. Depois de concluir, inclua environment_id e collection_id no arquivo .env como DISCOVERY_ENVIRONMENT_ID e DISCOVERY_COLLECTION_ID.
Crie um grupo do Slack ou utilize um existente se tiver autorização suficiente. (Consulte as instruções do Slack sobre a criação de novos grupos.) Para incluir um novo bot, acesse as configurações do aplicativo do grupo do Slack navegando até https://<slack_group>.slack.com/apps/manage
e selecionando o menu Custom Integrations à esquerda.
Clique em “Bots” e, em seguida, clique no botão verde “Add Configuration”.
Dê um nome significativo para o bot. Observe que o símbolo “@” foi preenchido previamente pelo Slack e não é incluído no arquivo de configuração .env. Salve-o no .env como SLACK_BOT_USER.
Após a criação, salve o token da API gerado no arquivo .env como SLACK_BOT_TOKEN em caso de execução local ou salve se estiver usando o Deploy to Bluemix.
Execute /invite <botame>
em um canal para convidar o bot ou envie uma mensagem diretamente.
Se você usou Deploy to Bluemix
, a maior parte da configuração será automática, mas não em sua totalidade. Precisamos atualizar algumas variáveis de ambiente. No painel do Bluemix, localize o aplicativo que foi criado. Clique em Runtime
no menu e navegue até a guia Environment variables
.
Atualize as três variáveis de ambiente:
- Defina
SLACK_BOT_TOKEN
como o token que foi salvo na Etapa 6 - Defina
SLACK_BOT_USER
como o nome do seu bot da Etapa 6 - Deixe
CLOUDANT_DB_NAME
definido comowatson-online-store
Salve os novos valores e reinicie o aplicativo; procure erros nos logs.
$ python run.py
Inicie uma conversa com seu bot:
Inclua um item no seu carrinho:
- Ajuda! Encontrei erros no meu log ao usar o Deploy to Bluemix
Isto é esperado durante a primeira execução. O aplicativo tenta iniciar antes de o serviço Discovery ser totalmente criado. Aguarde um ou dois minutos. Esta mensagem deve aparecer:
Watson Online Store bot is connected and running!
- É exibida uma grande quantidade de informações de Criação de Log Vermelho.
Isto é esperado. A cor da criação de log no Bluemix será vermelha, independentemente da natureza da mensagem. Os níveis de log são definidos como “Debug” para auxiliar o desenvolvedor a ver como o código está sendo executado.
Isso pode ser alterado para logging.WARN
ou logging.ERROR
no código python.
Se usar o botão Deploy to Bluemix, algumas métricas serão acompanhadas e as informações a seguir serão enviadas a um serviço de Rastreador da Implementação em cada implementação:
- Versão do pacote do Python
- URL do repositório do Python
- Nome do Aplicativo (application_name)
- GUID do Aplicativo (application_id)
- Número de índice da instância do aplicativo (instance_index)
- ID do Espaço (space_id)
- Versão do Aplicativo (application_version)
- URIs do Aplicativo (application_uris)
- Etiquetas dos serviços de limite
- Número de instâncias para cada serviço de limite e informações do plano associado
Esses dados são coletados do arquivo setup.py no aplicativo de amostra e das variáveis de ambiente VCAP_APPLICATION
e VCAP_SERVICES
no IBM Bluemix e em outras plataformas do Cloud Foundry. Esses dados são utilizados pela IBM para o acompanhamento de métricas a respeito de implementações dos mesmos aplicativos no IBM Bluemix. O objetivo é determinar a utilidade dos nossos exemplos para podermos melhorar continuamente o conteúdo que oferecemos a você. Somente implementações de aplicativos de amostra que incluem código para fazer ping do serviço de Rastreador da Implementação serão acompanhadas.
Para desativar o acompanhamento, basta remover cf_deployment_tracker.track()
do arquivo run.py
no diretório do nível superior.