Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Projeto Finalizado, Emanuel Meira. #6

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 111 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@


# Created by https://www.gitignore.io/api/node,visualstudiocode
# Edit at https://www.gitignore.io/?templates=node,visualstudiocode

### Node ###
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage

# dolf
.directory

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# TypeScript v1 declaration files
typings/

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# parcel-bundler cache (https://parceljs.org/)
.cache

# next.js build output
.next

# nuxt.js build output
.nuxt

# vuepress build output
.vuepress/dist

# Serverless directories
.serverless

# FuseBox cache
.fusebox/

### VisualStudioCode ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json


# End of https://www.gitignore.io/api/node,visualstudiocode

# e2e
/e2e/*.js
/e2e/*.map

# dependencies
/node_modules

# IDEs and editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace



2 changes: 2 additions & 0 deletions Arquivos_Watson/Info
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@

Por segurança eu removi o workspace_id dentro do "workspace_dialogs"
2 changes: 2 additions & 0 deletions Arquivos_Watson/entities.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
local,sul,SUL
local,Norte,nort
28 changes: 28 additions & 0 deletions Arquivos_Watson/intents.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
você tem diferencial de batalha?,diferencial_batalha
qual seu diferencial de batalha?,diferencial_batalha
Quais batalhas participou?,experiencias_combate
Quais guerras ja lutou ?,experiencias_combate
quais suas experiencias no campo de batalha ?,experiencia_trab
quais suas experiencias em combate?,experiencia_trab
quais são suas habilidades especiais?,habilidades_especiais
quais suas habilidades especiais?,habilidades_especiais
qual sua idade?,idade
qual seu tempo de vida?,idade
quantos anos você tem ?,idade
quais lições aprendidas na batalha?,licoes_aprendidas
quais lições aprendidas?,licoes_aprendidas
como se chama?,nome
qual seu nome guerreiro?,nome
qual seu nome?,nome
fale sobre você,resumo
fale um pouco sobre você,resumo
qual seu resumo do guerreiro?,resumo
oi,saudacao
boa noite,saudacao
E ai,saudacao
boa tarde,saudacao
bom dia,saudacao
ola,saudacao
tempo congelado,tempo_gelo
A quanto tempo esta congelado?,tempo_gelo
a quanto tempo ta no gelo?,tempo_gelo
1 change: 1 addition & 0 deletions Arquivos_Watson/workspace_dialogs.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"name":"chatboot-solutis","intents":[{"intent":"diferencial_batalha","examples":[{"text":"você tem diferencial de batalha?"},{"text":"qual seu diferencial de batalha?"}],"description":""},{"intent":"experiencias_combate","examples":[{"text":"Quais batalhas participou?"},{"text":"Quais guerras ja lutou ?"}],"description":""},{"intent":"nome","examples":[{"text":"como se chama?"},{"text":"qual seu nome guerreiro?"},{"text":"qual seu nome?"}],"description":""},{"intent":"licoes_aprendidas","examples":[{"text":"quais lições aprendidas na batalha?"},{"text":"quais lições aprendidas?"}],"description":""},{"intent":"habilidades_especiais","examples":[{"text":"quais são suas habilidades especiais?"},{"text":"quais suas habilidades especiais?"}],"description":""},{"intent":"tempo_gelo","examples":[{"text":"tempo congelado"},{"text":"A quanto tempo esta congelado?"},{"text":"a quanto tempo ta no gelo?"}],"description":""},{"intent":"saudacao","examples":[{"text":"oi"},{"text":"boa noite"},{"text":"E ai"},{"text":"boa tarde"},{"text":"bom dia"},{"text":"ola"}],"description":""},{"intent":"experiencia_trab","examples":[{"text":"quais suas experiencias no campo de batalha ?"},{"text":"quais suas experiencias em combate?"}],"description":""},{"intent":"idade","examples":[{"text":"qual sua idade?"},{"text":"qual seu tempo de vida?"},{"text":"quantos anos você tem ?"}],"description":""},{"intent":"resumo","examples":[{"text":"fale sobre você"},{"text":"fale um pouco sobre você"},{"text":"qual seu resumo do guerreiro?"}],"description":""}],"entities":[{"entity":"local","values":[{"type":"synonyms","value":"sul","synonyms":["SUL"]},{"type":"synonyms","value":"Norte","synonyms":["nort"]}],"fuzzy_match":true}],"language":"pt-br","metadata":{"api_version":{"major_version":"v1","minor_version":"2018-07-10"}},"description":"","dialog_nodes":[{"type":"event_handler","output":{},"parent":"slot_3_1541043787932","context":{"local":"@local"},"metadata":{},"conditions":"@local","event_name":"input","dialog_node":"handler_4_1541043787932","previous_sibling":"handler_5_1541043787932"},{"type":"event_handler","output":{"text":{"values":["Não existe base nesse lugar ... informe novamente sua localização, 'Sul' ou 'Norte'."],"selection_policy":"sequential"}},"parent":"slot_3_1541043787932","metadata":{},"event_name":"nomatch","dialog_node":"handler_7_1541044244653","previous_sibling":"handler_4_1541043787932"},{"type":"event_handler","output":{"text":"Antes de continuar essa comunicação, preciso que me informe a sua localização, 'Sul' ou 'Norte' ?"},"parent":"slot_3_1541043787932","metadata":{},"event_name":"focus","dialog_node":"handler_5_1541043787932"},{"type":"slot","output":{},"parent":"node_1_1541042880806","metadata":{},"variable":"$local","dialog_node":"slot_3_1541043787932"},{"type":"standard","title":"resumo","output":{"generic":[{"values":[{"text":"Em resumo, sou um guerreiro atento, detalhista e adaptável a diversas circunstâncias e com muita vontade de aprender, porque ainda estou em construção. Evolução constante é meu lema!"}],"response_type":"text","selection_policy":"sequential"}]},"metadata":{},"conditions":"#resumo","dialog_node":"node_7_1541045736308","previous_sibling":"node_6_1541045513442"},{"type":"standard","title":"experiencia trab","output":{"generic":[{"values":[{"text":"Utilizo Java, JSP, JPA (hibernate), JDBC, Maven, SQLServer, MySQL, Selenium, GIT e Eclipse para abater meus inimigos e superar problemas encontrados, também realizo pequenas incursões com C# ,WEBAPI, EF e Angular2+, além é claro da caixa de ferramentas básicas de todo guerreiro, HTML, CSS e JS/jquery"}],"response_type":"text","selection_policy":"sequential"}]},"metadata":{},"conditions":"#experiencia_trab","dialog_node":"node_6_1541045513442","previous_sibling":"node_5_1541045351296"},{"type":"frame","title":"saudação","output":{"generic":[{"values":[{"text":"Localizado! Fico feliz que entrou em contato.. não aguentava mais ficar no gelo. \n Então sua base fica ao $local .. interessante .."}],"response_type":"text","selection_policy":"sequential"}]},"metadata":{"fallback":"leave"},"conditions":"#saudacao","digress_in":"does_not_return","dialog_node":"node_1_1541042880806","digress_out":"allow_all","previous_sibling":"Bem-vindo","digress_out_slots":"not_allowed"},{"type":"standard","title":"Idade","output":{"generic":[{"values":[{"text":"Tenho 23 anos e muitas batalhas vencidas, senhor!"}],"response_type":"text","selection_policy":"sequential"}]},"metadata":{},"conditions":"#idade","dialog_node":"node_1_1541044520216","previous_sibling":"node_2_1541043528645"},{"type":"standard","title":"Em outros casos","output":{"generic":[{"values":[{"text":"Eu não entendi o que você quis dizer .. provavelmente resultado de ter ficado muito tempo no gelo.. "},{"text":"Ainda continuo sem entender .. meus sistemas devem estar congelados.."},{"text":"Preciso que modifique a frase, estou recalculando e atualizando tudo."},{"text":"É.. eu tentei, mas não deu :x "}],"response_type":"text","selection_policy":"sequential"}]},"metadata":{},"conditions":"anything_else","dialog_node":"Em outros casos","previous_sibling":"node_8_1541045911978"},{"type":"standard","title":"habilidades especias","output":{"generic":[{"values":[{"text":"O desenvolvimento de código com baixo acoplamento e alta coesão, senhor. Tenho conhecimento em\narquitetura de software, padrões de projetos e destruição de códigos com 'bugs' de forma furtiva."}],"response_type":"text","selection_policy":"sequential"}]},"metadata":{},"conditions":"#habilidades_especiais","dialog_node":"node_3_1541044783462","previous_sibling":"node_2_1541044619800"},{"type":"standard","title":"Extra","output":{"generic":[{"values":[{"text":"A muito tempo... Ultima vez que sai, tive problemas com uns \"caminhantes brancos/White Walkers\" hahaha!"}],"response_type":"text","selection_policy":"sequential"}]},"metadata":{},"conditions":"#tempo_gelo","dialog_node":"node_8_1541045911978","previous_sibling":"node_7_1541045736308"},{"type":"standard","title":"diferencial de batalha","output":{"generic":[{"values":[{"text":"O rápido aprendizado em campo de batalha e a adaptação acelerada, são os meus diferencias em uma guerra."}],"response_type":"text","selection_policy":"sequential"}]},"metadata":{},"conditions":"#diferencial_batalha","dialog_node":"node_2_1541044619800","previous_sibling":"node_1_1541044520216"},{"type":"standard","title":"licoes aprendidas","output":{"generic":[{"values":[{"text":"Sem duvidas, as principais lições foram a comunicação entre sistemas, a arquitetura dos softwares e a ótima interpretação e aplicação das regras de negocio."}],"response_type":"text","selection_policy":"sequential"}]},"metadata":{},"conditions":"#licoes_aprendidas","dialog_node":"node_5_1541045351296","previous_sibling":"node_4_1541045153628"},{"type":"standard","title":"Experiencia combate","output":{"generic":[{"values":[{"text":"Participei da grandes Guerra dos Firmwares, uma batalha que tinha como objetivo a construção de Firmware para equipamentos como ONT e OLT (EPON/GPON) e o sistema WEB para interface de comunicação com os demais agentes. \n Participei também da Batalha da Automação, onde em uma empresa a produção de cartões de credito foi automatizada\"."}],"response_type":"text","selection_policy":"sequential"}]},"metadata":{},"conditions":"#experiencias_combate","dialog_node":"node_4_1541045153628","previous_sibling":"node_3_1541044783462"},{"type":"standard","title":"nome","output":{"generic":[{"values":[{"text":"Meu nome é Emanuel Meira, se apresetando para o serviço, senhor!"}],"response_type":"text","selection_policy":"sequential"}]},"metadata":{},"conditions":"#nome","dialog_node":"node_2_1541043528645","previous_sibling":"node_1_1541042880806"},{"type":"standard","title":"Bem-vindo","output":{"generic":[{"values":[{"text":"Olá. Como posso te ajudar?"}],"response_type":"text","selection_policy":"sequential"}]},"metadata":{},"conditions":"welcome","dialog_node":"Bem-vindo"}],"workspace_id":"XXXXXXXXXXXXXXXXXXX","counterexamples":[],"system_settings":{"tooling":{"store_generic_responses":true},"disambiguation":{"prompt":"Você quis dizer:","none_of_the_above_prompt":"Nenhuma das anteriores"},"human_agent_assist":{"prompt":"Você quis dizer:"}},"learning_opt_out":false}
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
[![N|Solid](http://solutis.com.br/images/logo.png)](http://solutis.com.br)

![Chat](https://github.com/Emanuelmeira/desafio-multiverso-chatbot/blob/master/img/chat.png)

# NOSSO DESAFIO MORTY - CHATBOT
“Cada cabeça um universo” de infinitas possibilidades. Imagine-se em um multiverso inóspito onde os maiores guerreiros estão congelados em cápsulas e poderão ser acionados para batalhas a qualquer momento. O próximo guerreiro a ser escolhido tem a missão de impedir um novo ataque utilizando seus conhecimentos em tecnologia. Nesse cenário, você é um guerreiro congelado e o chatbot deve fazer com que você seja escolhido para a missão. Para isso, seu chatbot deverá saber responder no mínimo as seguintes questões:
- nome (ex: como se chama?, qual seu nome guerreiro?... )
Expand Down
11 changes: 11 additions & 0 deletions api/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#Environment Variables IBM

PORT=3000
USERNAME=XXXXXXXX
PASSWORD=XXXXXXX
VERSION=2018-10-17
URL=https://gateway.watsonplatform.net/assistant/api/
WORKSPACE_ID=XXXXX

#[email protected]
#Emanuel Meira
39 changes: 39 additions & 0 deletions api/app.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
require('dotenv').load();
const express = require('express');
const bodyParser = require('body-parser');
const AssistantV1 = require('watson-developer-cloud/assistant/v1');
const cors = require('cors');

const app = express();
app.use(bodyParser.json());
app.use(cors());

const assistant = new AssistantV1({
username: process.env.USERNAME,
password: process.env.PASSWORD,
url: process.env.URL,
version: process.env.VERSION,
});

const msgContext = {}
app.post('/conversation', (req, res) => {

var text = req.body.text;

const params = {
input: { text },
workspace_id:process.env.WORKSPACE_ID,
context: this.msgContext,
};

assistant.message(params, (err, response) => {
if (err) {
res.status(500).json(err);
} else {
this.msgContext = response.context;
res.json(response.output.text);
}
});
});

app.listen(process.env.PORT, () => console.log(`Server online ${process.env.PORT}`));
22 changes: 22 additions & 0 deletions api/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"name": "conversation",
"version": "1.0.0",
"description": "Watson IA Assistant",
"main": "app.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [
"watson",
"conversation",
"nodejs"
],
"author": "Emanuel Meira",
"license": "ISC",
"dependencies": {
"cors": "^2.8.4",
"dotenv": "^6.1.0",
"express": "^4.16.4",
"watson-developer-cloud": "^3.12.0"
}
}
13 changes: 13 additions & 0 deletions chat-angular/.editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Editor configuration, see http://editorconfig.org
root = true

[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
max_line_length = off
trim_trailing_whitespace = false
39 changes: 39 additions & 0 deletions chat-angular/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# See http://help.github.com/ignore-files/ for more about ignoring files.

# compiled output
/dist
/tmp
/out-tsc

# dependencies
/node_modules

# IDEs and editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace

# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json

# misc
/.sass-cache
/connect.lock
/coverage
/libpeerconnection.log
npm-debug.log
yarn-error.log
testem.log
/typings

# System Files
.DS_Store
Thumbs.db
27 changes: 27 additions & 0 deletions chat-angular/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# ChatAngular

This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.0.3.

## Development server

Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.

## Code scaffolding

Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.

## Build

Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build.

## Running unit tests

Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).

## Running end-to-end tests

Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).

## Further help

To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
Loading