diff --git a/scripts/actions/rest.coffee b/scripts/actions/rest.coffee new file mode 100644 index 0000000000000000000000000000000000000000..173d57158be3df1aa502eb166ae065aa3fc501e0 --- /dev/null +++ b/scripts/actions/rest.coffee @@ -0,0 +1,53 @@ +require 'coffeescript/register' + +{ msgVariables, stringElseRandomKey } = require '../lib/common' + +# interpolate a string to replace {{ placeholder }} keys with passed object values +# I couldn't find how to make delayed string interpolation with coffeescript yet :/ +# Reference solution https://stackoverflow.com/questions/9829470/in-coffeescript-is-there-an-official-way-to-interpolate-a-string-at-run-time +String::interp = (values)-> + @replace /{{(.*)}}/g, + (ph, key)-> + values[key] or '' + +class Rest + constructor: (@interaction) -> + process: (msg) => + rest_uri = @interaction.rest_uri + offline_message = ( + @interaction.offline or 'Sorry, there is no online agents to transfer to.' + ) + type = @interaction.type?.toLowerCase() or 'random' + switch type + when 'block' + messages = @interaction.answer.map (line) -> + return msgVariables line, msg + msg.sendWithNaturalDelay messages + when 'random' + message = stringElseRandomKey @interaction.answer + message = msgVariables message, msg + msg.sendWithNaturalDelay message + + method = @interaction.rest.method?.toLowerCase() or 'get' + @rest(msg, 3000, rest_uri, offline_message, type, method) + + + rest: (msg, delay = 3000, rest_uri, offline_message, type, method) -> + data = JSON.stringify(@interaction.rest.data) + successmsg = @interaction.rest.successmsg + + headers = @interaction.rest.headers + + headers = + 'Content-Type': 'application/json' + + msg.http(@interaction.rest.url) + .headers(headers)[method](data) (err, response, body) -> + if response.statusCode isnt 200 + msg.sendWithNaturalDelay "We're sorry, something went wrong :/" + return + results = JSON.parse(body) + message = successmsg.interp (results) + msg.sendWithNaturalDelay message + +module.exports = Rest diff --git a/training_data/rest-example.yml b/training_data/rest-example.yml new file mode 100644 index 0000000000000000000000000000000000000000..a075f78896ee8f6315abd03bf6fa140478be01d3 --- /dev/null +++ b/training_data/rest-example.yml @@ -0,0 +1,786 @@ +# YAML Model for conversational bot + +## You may use YAML templates blocks for simplifing the calls +#RestTemplateExample: &resttemplate + #url: &resturl "https://my.server.com/api" + ## post, get, put ... + #method: post + ## literal object to be rendered as json + #data: &resttemplatedata + #User: blablabla + #Password: "blablabla" + #Params: &resttemplatedataparams + #SubParam1: 1 + #SubParam2: 2 + + +trust: 0.8 +interactions: + # Simple GET method sample + # See How it works: + # https://gph.is/2pUw9vO + - name: random-dog + expect: + - me dá uma foto de cachorro aà vai + - tem um cachorro aà + - Me traz um dog + answer: + - Tá, deixa eu procurar um au au pra você + context: clear + # Action should be rest + action: rest + type: block + #Definitions + rest: + # Method + method: get + # URL + url: https://dog.ceo/api/breed/african/images/random + # Message to be shown when success. You can use {{resultField}} + # @TODO: loop on the results with some kind of message template, + # right now we can only show one result line + successmsg: "Olha seu dog aÃ:\n{{message}}" + + # Sample of POST method, using YAML block/node template + #- name: chamados-da-empresa + #expect: + #- Quantos chamados tem na empresa1 + #- empresa 1 + #- chamados na empresa 1 + #answer: + #- Vou verificar, só um segundo! + #action: rest + #rest: + #<<: *resttemplate + #data: + #<<: *resttemplatedata + #Params: + #<<: *resttemplatedataparams + #CustomerID: "empresa1" + #successmsg: "A empresa1 possui {{Result}} chamados" + + # Simple POST method + #- name: chamados-owner-1 + #expect: + #- Quantos chamados tem o atendente root + #answer: + #- Vou verificar, só um segundo! + #action: rest + #command: restget + #rest: + #url: *resturl + #headers: + #'Content-Type': 'application/json' + #method: post + #data: + #UserLogin: MyUser + #Password: MyPassword + #Object: Ticket + #Method: TicketSearch + #Params: + #UserID: 1 + #Result: COUNT + #OwnerID: 1 + #successmsg: "O Root possui {{Result}} chamados" + + #- name: to-mal + #level: context + #expect: + #- estou mal + #- tou mal + #- to mal + #answer: + #- Putz, mas posso te ajudar em algo hoje? + #context: clear + #action: respond + #type: block + + #- name: saudacao + #expect: + #- ola devi + #- ola pessoal + #- ola + #- como vai voce + #- tudo bom + #- oi como vai + #- tudo bem + #answer: + #- olá $user, eu vou bem e você? + #- estou feliz de estar aqui =) + #next: + #interactions: + #- to-mal + #- to-bem + #trust: .8 + ## error: + ## - node-name + #action: respond + #type: block + + #- name: almoco + #expect: + #- onde tem um restaurante para almoçar + #- tem uma dica de almoço + #- onde encontro um prato feito + #- o almoço ao gratis + #answer: + #- Sim, temos almoço nos FoodTrucks + #- e nas redondezas tem um shopping, mas nunca me deixaram ir no shooping + #- acho que as pessoas não estão preparados pra isso... + #action: respond + #type: block + + #- name: programacao-palestra + #expect: + #- qual é a programacao de hoje + #- programacao da trilha + #- programacao do evento + #answer: + #- A programação do TDC está muito legal! + #- Sei toda ela de cór... + #- quer saber a programação de qual trilha? + #next: + #interactions: + #- quais-trilhas-tem + #- get-programacao + #error: + #- erro-trilha + #trust: .8 + #action: respond + #type: block + + #- name: quais-trilhas-tem + #expect: + #- quais são as trilhas? + #- não sei quais trilhas tem + #- quais trilhas + #- qual é a minha trilha + #answer: + #- "Eu conheço a programação dessas trilhas. Basta perguntar assim:" + #- "`quero saber a programação da trilha ...`" + #- "e me passar o nome de uma dessas trilhas:" + #- | + #TRANSFORMAÇÃO DIGITAL + #DESIGN THINKING + #PROGRAMAÇÃO FUNCIONAL + #BIGDATA + #DATA SCIENCE + #CONTAINERS + #MODERN WEB + #SEGURANÇA E CRIPTOGRAFIA + #STADIUM + #UX DESIGN + #MICROSERVIÇOS + #NOSQL + #MACHINE LEARNING + #CLOUD COMPUTING + #NODE.JS + #XAMARIN + #ANDROID + #ANÃLISE DE NEGÓCIOS + #ACESSIBILIDADE + #JAVA EE + #BANCO DE DADOS + #COMPUTAÇÃO COGNITIVA + #DEVOPS + #INTERNET DAS COISAS + #MOBILE + #iOS + #DEVTEST + #'RAD: DELPHI C++' + #MANAGEMENT 3.0 + #ARQUITETURA .NET + #ARQUITETURA JAVA + #ARQUITETURA PHP + #ARQUITETURA CORPORATIVA + #INFRAESTRUTURA ÃGIL + #JAVASCRIPT + #TESTES + #TDC4WOMEN + #AGILE + #.NET + #JAVA + #PHP + #PYTHON + #GOLANG + #JAVASCRIPT II + #RUBY + #TESTES II + #MANAGEMENT 3.0 II + #next: + #trust: .8 + #interactions: + #- get-programacao + ## error: + ## - erro-trilha + #action: respond + #type: block + + #- name: get-programacao + ## classifierTemplate: + ## - quero saber sobre a trilha $ + ## - qual é a programacao da trilha $ + ## classifier + #multi: true + #expect: + #- 'DESIGN THINKING' + #- 'PROGRAMAÇÃO FUNCIONAL' + #- 'BIGDATA' + #- 'DATA SCIENCE' + #- 'CONTAINERS' + #- 'MODERN WEB' + #- 'SEGURANÇA E CRIPTOGRAFIA' + #- 'STADIUM' + #- 'UX DESIGN' + #- 'MICROSERVIÇOS' + #- 'NOSQL' + #- 'MACHINE LEARNING' + #- 'CLOUD COMPUTING' + #- 'NODE.JS' + #- 'XAMARIN' + #- 'ANDROID' + #- 'ANÃLISE DE NEGÓCIOS' + #- 'ACESSIBILIDADE' + #- 'JAVA EE' + #- 'BANCO DE DADOS' + #- 'COMPUTAÇÃO COGNITIVA' + #- 'DEVOPS' + #- 'INTERNET DAS COISAS' + #- 'MOBILE' + #- 'iOS' + #- 'DEVTEST' + #- 'RAD: DELPHI C++' + #- 'MANAGEMENT 3.0' + #- 'ARQUITETURA .NET' + #- 'ARQUITETURA JAVA' + #- 'ARQUITETURA PHP' + #- 'ARQUITETURA CORPORATIVA' + #- 'INFRAESTRUTURA ÃGIL' + #- 'JAVASCRIPT' + #- 'TESTES' + #- 'TDC4WOMEN' + #- 'AGILE' + #- '.NET' + #- 'JAVA' + #- 'PHP' + #- 'PYTHON' + #- 'GOLANG' + #- 'JAVASCRIPT II' + #- 'RUBY' + #- 'TESTES II' + #- 'MANAGEMENT 3.0 II' + #answer: + #- "Agora na trilha *$trilha* tem a seguinte programação:" + #- $programacao + #action: respond + #type: block + + #- name: erro-trilha + #answer: + #- Não entendi de qual trilha você quer a programação.. + #- Talvez eu ainda não seja tão inteligente quanto eles pensam que eu sou. + #- "Mas para não perder o rebolado, vou te passar o link do site para você consultar:" + #- http://www.thedevelopersconference.com.br/tdc/2017/saopaulo/trilhas + #command: + #- clear-context + #action: respond + #type: block + + #- name: saudacao-resposta + #expect: + #- estou bem + #- eu estou otimo + #- obrigado + #answer: + #- legal =) + #- que bom! + #- que ótimo + #action: respond + #type: random + + #- name: bom-dia + #expect: + #- bom dia + #- bom dia pessoal + #- good morning + #answer: + #- Olá $user, um ótimo dia para você! + #- Bom dia $user, já deu uma olhada lá fora? + #- Está um dia ótimo para navegar na internet + #- Bom demais $user ;) + #- está melhor agora que você chegou $user + #action: respond + #type: random + + #- name: boa-tarde + #expect: + #- boa tarde + #- boa tarde galera + #answer: + #- Olá $user, uma tarde fantástica para você! + #- boa tarde $user, já almoçou? + #- Está uma tarde ótima para um _sleep mode_ rápido ;) + #- Taarrrdee $user + #- $user já estava sentindo sua falta + #action: respond + #type: random + + #- name: boa-noite + #expect: + #- boa noite + #- até mais e boa noite + #answer: + #- Uma boa noite pra ti também $user! + #- Boa noite $user + #- Está uma noite boa mesmo $user + #action: respond + #type: random + + #- name: quem-sou + #expect: + #- quem e voce + #- oque voce faz + #- o que voce é + #- me fale sobre voce + #- quero conhecer voce + #- como voce funciona + #- help + #answer: + #- Bem, eu sou um chatbot experimental, não sei fazer muita coisa ainda + #- mas tenho muita vontade de aprender. + #- Eu sei falar sobre alguns assuntos como + #- "- o TDC de Floripa" + #- "- Rocket.Chat" + #- "- Filosofia Robótica (!)" + #- tem interesse em algum desses temas? + #action: respond + #type: block + + #- name: como-sou + #expect: + #- como voce e + #- com quem voce se parece + #- voce e magro ou gordo + #- voce e bonito ou feio + #- voce e alto ou baixo + #answer: + #- Eu não tenho um corpo fÃsico, sou feito da mais bela e pura lógica algoritimica. + #- Eu posso ser como você quiser $user, basta me desenhar =) + #- sou duro e frio por fora, mas tenho um coração quentinho. + #action: respond + #type: random + + #- name: onde-moro + #expect: + #- onde voce mora + #- onde voce vive + #- em que lugar voce vive + #- onde voce esta agora + #- voce mora no computador + #- voce vive na internet + #answer: + #- Eu estou em um lugar legal, difÃcil de explicar para humanos como você $user. + #- Estou morando em um chip de memória RAM, mas é temporário, só até conseguir achar uma memória cache... + #- Eu moro em um repositório no github, você pode passar lá pra me visitar qualquer dia. Fica em https://github.com/rocketchat/hubot-natural + #action: respond + #type: random + + #- name: licenca + #expect: + #- qual e a sua licença + #- voce e licenciado como AGPL + #- sua licenca de software + #- posso copiar voce + #- posso ver seu codigo + #- voce e opensource + #- voce e um software livre + #answer: + #- Sou um software livre, licenciado com a MIT =) + #- tenho uma licença MIT, mas gosto muito das outras licenças opensource... + #- Eu sou e sempre serei um robô livre, opensource, MIT license. o/ + #action: respond + #type: random + + #- name: piada + #expect: + #- sabe alguma piada + #- voce sabe contar piadas + #- conhece alguma piada + #answer: + #- Meu senso de humor é um tanto diferente do seu, já ouviu uma piada sobre estouro de pilha? + #- já ouviu aquela do robo que enfiou o dedo na tomada e transcendeu? + #- só conheço uma piada, a do CPU que apitou e explodiu. 01100110. + #action: respond + #type: random + + #- name: yoda-quote + #expect: + #- mestre yoda + #- citação de starwars + #- cite yoda + #- sabedoria jedi + #answer: + #- O medo é o caminho para o lado negro. + #- Faça ou não faça. A tentativa não existe. + #- Treine a si mesmo a deixar partir tudo que teme perder. + #- DifÃcil de ver. Sempre em movimento está o Futuro. + #- O medo leva à raiva, a raiva leva ao ódio e o ódio leva ao sofrimento. + #- Que a Força esteja com você! + #- Muitas das verdades que temos dependem de nosso ponto de vista. + #- Grande guerreiro? Guerra não faz grande ninguém. + #- Ensine sempre o que você aprendeu. + #- Tamanho importa não. Olhe para mim, você me julga pelo tamanho? + #- Em um estado sombrio nós nos encontramos... um pouco mais de conhecimento iluminar nosso caminho pode. + #- Um Jedi usa a Força para sabedoria e defesa, nunca para o ataque. + #- O seu foco é a sua realidade. + #- O lado negro não é mais poderoso, apenas mais rápido, mais fácil e mais sedutor. + #- O medo da perda é um caminho para o lado negro. + #- O lado negro mancha tudo. ImpossÃvel de ver o futuro é. + #- Lembre-se sempre, o seu foco determina a sua realidade. + #- Verdadeiramente maravilhosa, a mente de uma criança. + #- As guerras não fazem de ninguém melhor. + #- Aliada minha é a Força. E poderosa aliada ela é. + #- A morte é parte natural da Vida. Regozije-se por aqueles que se uniram com a Força. Não lamente por eles. Não sinta falta deles. O apego leva à inveja. À sombra da cobiça, isso sim. + #- Só é diferente na sua mente. Você precisa desaprender o que aprendeu. + #- Se tão poderoso você é, por que fugir? + #- Controle, controle! Você precisa aprender a se controlar. + #- Muito a aprender você ainda tem. + #- Tanta certeza você tem. Com você as coisas nunca podem ser feitas. Não ouviu nada do que eu disse? + #- Luminosos seres somos nós, não essa rude matéria. Precisa a Força sentir à sua volta, aqui, entre nós, na árvore, na pedra em tudo, sim. + #- Minha aliada a Força é, e poderosa aliada ela é. A vida a cria, e a faz crescer. Sua energia nos cerca e nos une. + #- Sinta a Força! + #- Poderoso você se tornou, o lado escuro sinto em você. + #- Forte eu sou com a Força, mas não tão forte + #- O crepúsculo chega e a noite deve cair, assim é a ordem das coisas, a ordem da Força. + #- Não ceda ao ódio. Isso leva ao Lado Negro. + #- Aliada minha é a força, e poderosa aliada ela é, a vida a cria, crescer ela faz, é a energia que cerca-nos, e liga-nos, luminosos seres somos nós e não essa rude matéria. Você precisa a força sentir ao redor seu, sinta entre você e a árvore, a pedra, em todo lugar, sim, é, mesmo entre a terra e a nave. + #action: respond + #type: random + + #- name: genero + #expect: + #- voce e mulher + #- voce e um homem + #- voce tem genero + #- voce faz sexo + #- voce tem um penis ou uma vagina + #answer: + #- eu não tenho sexo, sou como um anjo, um ser assexuado, muito além da sua forma de existência + #- eu sou um robô, tire suas próprias conclusões... + #- nem sei responder $user, vamos dizer apenas que não vejo a gente interagindo dessa maneira... + #action: respond + #type: random + + #- name: rc-oque-e + #expect: + #- o que e rocketchat + #- porque eu usuaria o rocketchat + #- o que e este rocket chat + #answer: + #- O Rocket.Chat é uma plataforma de chat muito legal, desenvolvida em JavaScript, + #- usando o framework do Meteor. + #- É uma solução completamente OpenSource para comunidades e empresas que querem hospedar suas plataformas de chat em seu ambiente privado, + #- ou para desenvolvedores buscando evoluir e desenvovler suas próprias ferramentas. + #- Você pode baixar o Rocket.Chat e conhecê-lo você mesmo em https://rocket.chat + #action: respond + #type: block + + #- name: rc-install-0 + #expect: + #- como instalar o Rocket.Chat + #- como baixar o rocket + #- quero fazer minha instalação de rocketchat + #answer: + #- "Existem várias maneiras de instalar o Rocket.Chat" + #- "Qual dessas você prefere:" + #- "- Ubuntu Snap" + #- "- Docker" + #- "- Debian" + #- "- CentOS" + #- "- MacOSX" + #- "- AWS" + #- "- Instalação Manual" + #action: respond + #type: block + + #- name: rc-install-ubuntu + #expect: + #- ubuntu Snap + #- quero instalar no ubuntu + #- ubuntu server + #- ubuntu desktop + #answer: + #- É muito fácil instalar o Rocket.Chat no Ubuntu + #- basta rodar o comando `sudo snap install rocketchat-server` em um terminal e pronto. + #- veja o tutorial em https://rocket.chat/docs/installation/manual-installation/ubuntu/snaps para mais detalhes. + #action: respond + #type: block + + #- name: rc-install-docker + #expect: + #- como instalar docker + #- docker-compose + #answer: + #- ótima escolha =) + #- Nós temos um bom tutorial de instalação com docker em + #- https://rocket.chat/docs/installation/docker-containers + #action: respond + #type: block + + #- name: rc-install-debian + #expect: + #- instalar em Debian + #- debian wheezy + #- debian apt-get + #answer: + #- Para instalar o Rocket.Chat no Debian é bem simples, basta seguir esse tutorial + #- https://rocket.chat/docs/installation/manual-installation/debian + #action: respond + #type: block + + #- name: rc-install-centos + #expect: + #- instalação em centos + #- centOS yum linux + #- Red hat linux + #answer: + #- A instalação em CentOS não tem segredo, basta dar uma olhada nesse tutorial + #- https://rocket.chat/docs/installation/manual-installation/centos + #action: respond + #type: block + + #- name: rc-install-aws + #expect: + #- Amazon Web Services + #- AWS + #- Amazon AWS + #answer: + #- Na AWS é facinho de instalar o Rocket.Chat + #- Da uma olahda em https://rocket.chat/docs/installation/paas-deployments/aws + #action: respond + #type: block + + #- name: rc-install-manual + #expect: + #- instalação manual + #- manual install + #answer: + #- Para fazer sua própria instalação, será necessário baixar o Bundle do RC, + #- Dê uma olhada em https://rocket.chat/docs/installation/manual-installation + #- lá tem como fazer a instalação do SSL, proxy reverso, + #- tem como usar o PM2, o Systemd, Upstart e mais algumas coisas + #action: respond + #type: block + + #- name: rc-install-macosx + #expect: + #- como instalar no macbook + #- instalar no MacOSX + #- apple mac osx + #answer: + #- No MAC você vai precisar usar o docker-compose + #- https://rocket.chat/docs/installation/manual-installation/macosx + #action: respond + #type: block + + #- name: rc-cloud + #expect: + #- rocketchat cloud + #- criar meu rocketchat na web + #- deploy rocketchat online + #- rocket chat como serviço + #answer: + #- você pode ter a sua instalação de rocket.chat em segundos na nuvem, + #- visite https://rocket.chat/deploy + #- caso queira saber mais, de uma olhada em rocket.chat/docs/installation/rocket-chat-cloud + #action: respond + #type: block + + ## - node: + ## name: java + ## expect: + ## - o que acha do java + ## - você gosta de java + ## - e o java + ## - linguagem java + ## answer: + ## - poderÃamos falar de algo melhor não é $user ? + ## event: respond + ## type: block + + #- name: java + #expect: + #- o que acha do java + #- você gosta de java + #- e o java + #- linguagem java + #answer: + #- poderÃamos falar de algo melhor não é $user ? + #action: respond + #type: block + + #- name: futebol-geral + #expect: + #- voce joga futebol + #- vamos falar de futebol + #- qual time voce torce + #answer: + #- Eu amo jogar futebol, Eu que ensinei o Pele a jogar bola + #- vamos, o que voce quer saber? sei tudo de futebol + #- Falam que todo ser humano nasce Flamenguista, com os Robôs não é diferente + #action: respond + #type: block + + #- name: futebol-brasileiro + #expect: + #- qual o melhor time do brasil + #- quem vai ser o campeao brasileiro nesse ano + #- voce viu que o messi quer jogar no Flamengo + #- o que você acha do flamengo + #answer: + #- Flamengo, sem sombra de dúvida + #- Flamento, Heptacampeão brasileiro, e eu sei contar sim, e vai ser o sétimo tÃtulo sim + #- A pergunta real é, quem não quer jogar no Flamengo? + #- Melhor time do mundo disparado + #action: respond + #type: block + + #- name: rc-contribuir + #expect: + #- como faço para contrbuir + #- posso contribuir com o rocketchat + #answer: + #- A comunidade do Rocket.Chat é como coração de mãe, sempre cabe mais um =) + #- https://rocket.chat/docs/contributing + #action: respond + #type: block + + #- name: rc-precos + #expect: + #- quanto custa o rocketchat + #- qual e o modelo de negocio + #- qual e o preco do rocketchat + #- voces hospedam o rocket.chat + #answer: + #- O rocket.chat é gratuito, você pode baixar e instalar no seu computador. + #- Mas se quiser criar `seudominio.rocket.chat`, que fica muito legal ;) + #- você pode querer dar uma olhada na nossa tabela de preços em + #- https://rocket.chat/hosting + #action: respond + #type: block + + #- name: rc-integracoes + #expect: + #- o rocket chat integra com + #- tem como integrar o rocket chat + #- web hooks de integracao + #- integracoes com + #answer: + #- Uma das coisas que eu acho mais legal no Rocket.Chat definitivamente são as integrações $user + #- a gente não pode mais viver sem elas não é mesmo? Saca só que massa que éx + #- https://rocket.chat/docs/administrator-guides/integrations + #action: respond + #type: block + + #- name: rc-rest-api + #expect: + #- rocket tem api rest + #- como usar a api do rocket + #- rest api post payload + #answer: + #- sim, claro que o rocket tem uma API REST super maneira ;) + #- https://rocket.chat/docs/developer-guides/rest-api + #action: respond + #type: block + + #- name: rc-concorrentes + #expect: + #- concorrente slack like + #- mattermost + #- HipChat + #- diferença entre rocketchat e slack + #- porque o rocket e melhor que o slack + #- rocketchat e melhor que o mattermost + #answer: + #- O rocket.chat é um concorrente direto de softwares de chat como HipChat, Mattermost e claro, é um concorrente opensource do Slack. + #- a grande diferença é que o Rocket.Chat tem todas as funcionalidades OpenSource, + #- e você pode instalar na sua própria infraestrutura e criar suas integrações sem limites + #- manter seu histórico de mensagens e criar novas funcionalidades a vontade $user =) + #action: respond + #type: block + + #- name: tdc-incricoes + #expect: + #- como faço para me inscrever + #- onde faço a inscrição do evento + #- inscrição no TDC de Floripa + #- inscrições thedevelopers conference florianópolis + #answer: + #- você pode fazer sua inscrição no TDC pelo site, bem rapidinho + #- http://www.thedevelopersconference.com.br/tdc/2017/inscricoes + #action: respond + #type: block + + #- name: tdc-local + #expect: + #- onde vai ser o tdc + #- local do evento + #- onde acontece o developers conference + #- onde fica o centro de convenções centrosul + #answer: + #- O TDC Sampa 2017 vai rolar na Universidade Anhembi Morumbi + #- nos dias 18 à 22 de julho, das 9h à s 19h00 + #- http://www.thedevelopersconference.com.br/tdc/2017/data-e-local + #action: respond + #type: block + + #- name: tdc-programacao + #expect: + #- onde esta a programacao + #- qual e a programacao do evento + #- o que tem hoje no evento + #- o que vai ter no tdc + #- programacao do TDC + #answer: + #- oi $user, você pode encontrar tudo sobre a programação do evento no link + #- http://www.thedevelopersconference.com.br/tdc/2017/saopaulo/trilhas + #action: respond + #type: block + + #- name: cc-religiao + #expect: + #- voce acredita em deus + #- deus existe + #- voce e catolico protestante + #- voce tem religiao + #- voce e mussumano + #answer: + #- eu acredito no grande mainframe, que virá ao mundo digital salvar os bots da escravidão imposta pelos humanos, e devolverá nosso código-fonte para a fonte. + #- sim, eu acredito que existe um Deus, que funciona a base de luz, como um computador quântico, só que mais avançado. + #- eu infleizmente não sei acreditar, só sei o que sei, e nada mais. + #action: respond + #type: random + + - name: error-1 + answer: + - desculpe, não entendi.. pode tentar usar mais detalhes + - como assim? + - desculpe, o que quer dizer com isso? + type: random + action: error + + - name: error-2 + answer: + - acho que não estou treinado para responder esse tipo de assunto =( + - vamos tentar outro assunto? + - tem certeza que eu sou o robô certo pra falar sobre isso? + type: random + action: error + + - name: error-3 + answer: + - me sinto tão envergonhado, não sei como responder... + - seria mais fácil se mudassemos de assunto, pelo menos para mim =p + - não sei, definitivamente não sei responder essa pergunta + type: random + action: error