
Conheça o Mentor do Curso
Sejam todos muito bem vindos ao curso de VoiceBOT com Inteligência Artificial.
Primeiramente gostaria de dizer que estou muito feliz em poder compartilhar esta tecnologia e em compartilhar conhecimento com todos vocês.
Pra quem não me conhece me chamo Marcelo Ferracini, sou Engenheiro de Telecomunicações e Especialista em Tecnologia VoIP, e também sou Programador/Desenvolvedor Fullstack.
Estou desde 2005 na área de Telecom, e já se foram mais de +17 anos, passei por grandes empresas de telecom como EMBRATEL, TIM, entre outras grandes empresas de Telefonia do mercado VoIP. Faço isso com muito amor, e sou apaixonado pelo que faço, e esta paixão se traduz em meus mais de 17 anos trabalhando com Telecom e Tecnologia, também amo ensinar e agregar valor a vida das pessoas.
E foi unindo meu conhecimento de Engenheiro e Especialista VoIP com o meu lado Programador que eu consegui desenvolver este lindo projeto de VoiceBOT com Inteligência Artificial.
E vou ensinar tudo pra vocês através deste curso, sobre como criar o seu próprio robô, como criar o seu próprio VoiceBOT com inteligência artificial.
Então vamos nessa embarcar nesta jornada, espero que ao final vocês tenham o que vieram buscar, farei meu melhor para isso.
Seja bem-vindo ao FUTURO.
Apresentação da VoiceBOT JUDITE
Neste primeiro módulo você terá um overview sobre alguns pontos importantes e módulos abordados no curso, e também como se dará a construção do VoiceBOT, e ao final conhecerão a nossa VoiceBOT JUDITE, que será a agente que iremos criar ao final do curso.
Segue anexo a este módulo o PDF que apresentaremos no vídeo, caso queira consultar posteriormente.
Criação do Ambiente Virtual
Neste tópico você aprenderá a criar e preparar todo o ambiente para desenvolvimento do seu VoiceBOT localmente em seu computador.
Segue abaixo os links para Downloads usados neste módulo:
Download Virtualbox:
https://www.oracle.com/virtualization/technologies/vm/downloads/virtualbo
x-downloads.html
Download Linux (CentOS 7.9)
http://mirror.globo.com/centos/7.9.2009/isos/x86_64/
Download e Instalação do Asterisk
Neste tópico você aprenderá a baixar e instalar o sistema do PABX IP Asterisk, com sua configuração mais básica e somente com o necessário para desenvolvimento do nosso VoiceBOT com IA.
Todos os links e comandos desta aula estão abaixo, porém caso necessários estão também anexos no PDF do módulo 1.1
Atualização do CentOS
yum update
Instalação de dependências
yum install gcc gcc-c++ php-xml php php-mysql php-pear php-mbstring mariadb-devel mariadb-server mariadb sqlite-devel lynx bison gmime-devel psmisc tftp-server httpd make ncurses-devel libtermcap-devel sendmail sendmail-cf caching-nameserver sox newt-devel libxml2-devel libtiff-devel audiofile-devel gtk2-devel uuid-devel libtool libuuid-devel subversion kernel-devel kernel-devel-$(uname -r) git subversion kernel-devel php-process crontabs cronie cronie-anacron wget vim epel-release gmime-devel net-tools lame
Iniciar Banco de Dados
systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb
Configurar Banco de Dados
mysql_secure_installation
Acessando Banco de Dados
mysql -uroot -p
Instalando biblioteca libjansson
wget http://www.digip.org/jansson/releases/jansson-2.7.tar.gz
tar -zxvf jansson-2.7.tar.gz
cd jansson-2.7/
./configure --prefix=/usr
make clean
make && make install
ldconfig
Downloads para instalação Asterisk:
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
tar -zxvf asterisk-13-current.tar.gz
cd asterisk-13.XX.X/
./configure --libdir=/usr/lib64
Configurando Main Menuselect
make menuselect
contrib/scripts/get_mp3_source.sh
Instalação dos Módulos do Asterisk
make
make install
make samples
make config
Configuração de usuário Asterisk
useradd -m asterisk
chown asterisk.asterisk /var/run/asterisk
chown -R asterisk.asterisk /etc/asterisk
chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk
chown -R asterisk.asterisk /usr/lib64/asterisk
systemctl restart asterisk
systemctl enable asterisk
systemctl status asterisk
Configuração banco de dados Asterisk
mysql -u root -p
create user 'asterisk'@'localhost' identified by 'password';
create database asterisk;
GRANT ALL PRIVILEGES ON asterisk.* TO asterisk@localhost IDENTIFIED BY 'password';
flush privileges;
Iniciando o Asterisk
asterisk -rvvv
Neste momento o Asterisk deve estar funcionando corretamente, caso não execute conforme esperado, efetue um reboot na VM e refaça a tentativa de inicialização do Asterisk.
Criação e configuração de ramais no Asterisk
Neste tópico você aprenderá a criar 2 ramais no Asterisk e realizar chamadas entre eles, tudo com uma configuração simples, objetiva e somente com o necessário para desenvolvimento do VoiceBOT com IA.
Acessando a pasta de configurações do Asterisk
cd /etc/asterisk
mv sip.conf sip.conf.orig
vim sip.conf
Configuração básicas de ramais que precisam ser colocadas no sip.conf
[general]
port=5060
bindaddr=0.0.0.0
[2001]
defaultuser=2001
type=friend
secret=marcelo123
dtmfmode=rfc2833
host=dynamic
nat=force_rport,comedia
qualify=yes
context=voicebot
[2002]
defaultuser=2002
type=friend
secret=marcelo123
dtmfmode=rfc2833
host=dynamic
nat=force_rport,comedia
qualify=yes
context=voicebot
Criação de Roteamento entre ramais
Neste tópico você aprenderá a criar o roteamento que faz com que os ramais dentro do Asterisk se comuniquem entre eles, e sejam capazes de fazer e receber chamadas entre si.
Acessando a pasta de roteamento SIP do Asterisk
cd /etc/asterisk
mv extensions.conf extensions.conf.orig
vim extensions.conf
Configuração básicas roteamento de ramais
[voicebot]
exten => _2XXX,1,Dial(SIP/${EXTEN})
Criação e Configuração de URA Simples
Neste tópico você aprenderá a criar uma URA, ou um atendimento automático simples, para testes de chamadas do ramal para um outro destino.
Acessando a pasta de roteamento SIP do Asterisk
cd /etc/asterisk
vim extensions.conf
Configuração básicas roteamento de ramais
exten => 999,1,Answer()
exten => 999,2,Playback(hello-world)
exten => 999,3,Hangup()
Testes Básicos de Funcionamento
Neste tópico você realizará testes de funcionamento no Asterisk, para se certificar que toda configuração foi realizada da forma correta e está em pleno funcionamento, assim estará pronto para receber as configurações do nosso VoiceBOT.
Asterisk funcionando OK
service asterisk restart
asterisk -rvvvv
Chamada entre ramais OK
Ligação ramal 2001 para 2002 OK
Ligação ramal 2002 para 2001 OK
Ligação para URA Hello-World OK
É DE EXTREMA IMPORTÂNCIA QUE OS TESTES DESTE TÓPICO OBTENHAM TOTAL SUCESSO, CONFORME EXPLICADO NO VÍDEO, ANTES DE PROSSEGUIR PARA O PRÓXIMO MÓDULO.
Apresentação da Topologia e Plataforma Google
Neste tópico você terá uma visão geral de como funcionará todo o sistema do VoiceBOT, e também como se dará a integração entre o Asterisk e a inteligência artificial do Google usando o Dialogflow.
Criando um projeto no Google Cloud
Neste tópico você aprenderá a criar um projeto no Google Cloud Platform do zero, e é nele que vamos usar a ferramenta DialogFlow, que é onde rodará toda a inteligência artificial do nosso VoiceBOT.
Acessar o https://cloud.google.com/ e faça o Login com uma conta do Google.
Clique em Acesse o Console
Clique na seta canto superior esquerdo e em seguida Novo Projeto
Preencha no Nome do Projeto (usar por ex: VoiceBOT-Judite)
Criando a agente JUDITE no Dialogflow
Neste tópico você aprenderá a criar a nossa agente JUDITE dentro do Dialogflow.
Acessar o https://dialogflow.cloud.google.com/ e faça o Login com uma conta do Google.
No canto esquerdo superior clique na seta e em seguida Criar Novo Agente
Coloque o Nome do agente, o idioma que quer que ele se comunique, fuso horário local, e associe o agente ao projeto do Google Cloud que criamos anteriormente.
Clique em CRIAR para salvar e criar o seu agente.
Criação e testes das Intenções da JUDITE
Neste tópico você aprenderá a criar as intenções da nossa agente JUDITE, que serão usadas para interpretar as intenções das pessoas que irão interagir com a VoiceBOT.
Acessar o https://dialogflow.cloud.google.com/ e faça o Login com uma conta do Google.
No canto esquerdo superior clique na seta e em seguida Selecione o agente
Realize a Adição, Edição ou Remoção das intenções de acordo com o que precisar.
Ao finalizar as configurações realize testes clicando na caixinha do canto superior direito e fazendo as interações com as intenções para validar o perfeito funcionamento.
Habilitando acesso externo ao Google API
Neste tópico você aprenderá como habilitar o sistema de API do Google Cloud, para que seja possível consumirmos os recursos da API Dialogflow externamente pelo nosso sistema Asterisk.
Acessar o https://cloud.google.com/ e faça o Login com uma conta do Google.
Clique em Acesse o Console
Clique na barra de busca superior e digite “api”, escolha a opção APIs & SERVICES
No menu de navegação lateral escolha a opção Biblioteca (Library)Dentro a biblioteca de APIs clique na opção Dialogflow API, e dentro clique em HABILITAR para ativar esta API.
Configuração e testes externos da API Google
Neste tópico você aprenderá como configurar, e como realizar testes de acesso externo e funcionamento usando o Postman.
Acessar o https://cloud.google.com/ e faça o Login com uma conta do Google.
Clique em Acesse o Console
Clique na barra de busca superior e digite “api”, escolha a opção APIs & SERVICES
Criando as credenciais OAuth 2.0:
Para criar o OAuth 2.0 client ID dentro da console do Google clique em API & Services -> OAuth consent screen.
Adicione “getpostman.com” em Domínios Autorizados. Clique em salvar.
Dentro da console do Google clique em API & Services -> Credentials.
Selecione + Criar Credenciais -> OAuth client ID e escolha Tipo de Aplicação ‘Web application’.
Nome: 'getpostman'
Redirecionamento autorizado URIs: **https://www.getpostman.com/oauth2/callback
Copie os campos de ID do cliente e senha do cliente gerados para uso posterior.
Agora faça o seguinte:
Faça download do cliente POSTMAN https://www.postman.com/downloads/ e faça a instalação
Crie uma requisição no Postman usando o método POST.
Selecione a aba “Authorization” e escolha o tipo "OAuth 2.0". Clique 'Get New Access Token'
Preencha o formulário ‘Get New Access Token’ da seguinte forma:
Token Name: 'Google OAuth getpostman'
Grant Type: 'Authorization Code'
Callback URL: https://www.getpostman.com/oauth2/callback
Auth URL: https://accounts.google.com/o/oauth2/auth
Access Token URL: https://accounts.google.com/o/oauth2/token
Client ID: Gerado no passo 2 (Ex: '111111111111-aaaaaaaaaaa1234546789blablabl12.apps.googleusercontent.com')
Client Secret: Gerado no passo 2 (e.g., 'ABRACADABRAus1AAAAvq9R-A')
Scope: https://www.googleapis.com/auth/dialogflow
State: vazio
Client Authentication: "Send as Basic Auth header"
Clique em 'Solicitar Token' e 'Usar Token'.
https://dialogflow.googleapis.com/v2/projects/{PROJECT-ID}/agent/sessions/-:detectIntent
BODY:
{
"queryInput": {
"text": {
"languageCode": "pt-BR",
"text": "fazer pedido"
}
}
}
Clique em ENVIAR.
Obs: Segue anexa uma imagem de como montado a requisição de teste no POSTMAN.
É DE EXTREMA IMPORTÂNCIA QUE ESTES TESTES FUNCIONEM CORRETAMENTE, CONFORME DEMOSTRADO NO VÍDEO, PARA QUE NÃO TENHAM PROBLEMAS NA INTEGRAÇÃO FUTURA.
Visão Geral da Integração
Neste tópico você aprenderá como funcionará o sistema de integração entre o Asterisk e o sistema de inteligência artificial do Google (Dialogflow) usando uma aplicação PHP através do PHP-AGI dentro do Asterisk.
Criando Credencias da API Google Cloud
Neste tópico você aprenderá como criar as credenciais para acesso externo a API do Google Cloud, que serão usadas dentro do projeto PHP que faz a integração a toda Inteligência do Dialogflow.
Acessar o https://cloud.google.com/ e faça o Login com uma conta do Google.
Clique em Acesse o Console
Selecione o projeto que foi criado (Ex: VoiceBOT-Judite)
Habilitar as APIs:
Dialogflow
Speech-to-Text
Text-to-Speech
Dentro do projeto crie as credenciais clicando no meu de navegação IAM & Admin > Contas de Serviço.
Crie sua Conta de Serviços e depois crie uma chave JSON, baixe-a e a armazene.
Configurando o Projeto PHP no Asterisk
Neste tópico você aprenderá a baixar e a configurar todo o projeto PHP dentro do servidor do Asterisk, para que possa ser utilizado através da interface PHP-AGI do Asterisk, e assim poder através de uma lógica fazer interface com o DialogFlow, e consequentemente obter a inteligência que usaremos em nosso VoiceBOT.
Baixando o projeto PHP
git clone git clone https://github.com/marceloferracini/asterisk-api.git
Atualizando o PHP para versão 7.3
sudo yum install epel-release yum-utils
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum-config-manager --enable remi-php73
sudo yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysqlnd php-bcmath
php -v
Instalando o Composer
sudo curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
composer install
Criar Chave no google Cloud
Acessar https://cloud.google.com
Clique em acesso a console
API & Services > Credenciais
API Keys - Criar uma chave
Configurando acesso ao Banco de Dados e credenciais do Google
mv .env.exemplo .env
Edite o arquivio .env
Insira os dados do seu Banco de Dados e a Chave da API que foi criada
Editar o arquivo google_key.json e inserir seus dados
vi Storage/google_key.json
E edite com as informações do JSON que baixou do Google Cloud.
Checar a data e horário do servidor
date
timedatectl set-time xx:xx:xx
Execute script para popular o DB com mensagens
./route.php setupDB
ANTES DE PROSSEGUIR CONFIRA ABAIXO EM ** INFORMAÇÕES IMPORTANTES **
Valide as credenciais das APIs do Google Cloud
php route.php callIntenction "inicio" "2001"
php route.php getDefaultMessages "MENS_" "2001"
IMPORTANTE: Os testes de credenciais precisam funcionar 100% antes de seguir para o próximo módulo.
** INFORMAÇÃO IMPORTANTE **
Antes de executar o comando "php route.php callIntenction "inicio" "2001"" é necessário que altere o nome do projeto dentro do arquivo Translate.php conforme abaixo:
# vim Jobs/Translate.php
Altere o campo: "projectId" com o nome do seu projeto que criamos no passo 3.1
Salve o arquivo e siga os demais passos normalmente.
Configurando o roteamento no Asterisk
Neste tópico você aprenderá a configurar o roteamento dentro do Asterisk, para que o mesmo consiga interagir com o projeto PHP.
Editar o arquivo extensions.conf
vim /etc/asterisk/extensions.conf
Copie e cole o conteúdo fornecido no arquivo extensions.conf que foi fornecido.
Recarregue o Asterisk
asterisk -rx 'reload’
Testando nossa VoiceBOT JUDITE
Neste tópico realizaremos os testes iniciais com nossa VoiceBOT JUDITE, a qual já está integrada e pronta para realizar as primeiras interações de atendimento.
Registre um ramal em seu PABX usando os dados abaixo:
Username: 2001
Password: marcelo123
Host: IP DO SEU SERVIDOR
Faça uma chamada para o destino 123 (conforme vídeo)
Interaja com a VoiceBOT de forma natural e converse conforme entenda melhor, como se estivesse ligando para uma pizzaria.
Analise de dados e Interações do DialogFlow
Neste tópico você aprenderá como analisar os dados obtidos através das interações da VoiceBOT dentro do Dialogflow, que será extremamente importante para melhorias e melhor fluidez das conversas entre VoiceBOT e clientes.
Analise de dados e Interações do DialogFlow
Neste tópico você aprenderá como analisar os dados obtidos através das interações da VoiceBOT dentro do Dialogflow, que será extremamente importante para melhorias e melhor fluidez das conversas entre VoiceBOT e clientes.
VoiceBOT com Inteligência Artificial é um sistema de atendimento virtual, o qual é capaz de compreender a intenção e conversar de modo natural com uma pessoa, com isso tornar a conversa mais fluída e conversacional.
No curso de VoiceBOT com Inteligência Artificial você será capaz de montar um atendente virtual do zero, e também aprenderá todos os conceitos que envolvem esta nova tendência tecnologia de atendimentos virtuais, a qual se assemelha aos modelos usados para atendimento de grandes empresas como a BIA do Bradesco, SIRI da Apple, MAGALU da Magazine Luiza, entre outros.
Ao final do curso você será capaz de:
- Instalar um sistema de telefonia VoIP do zero;
- Criação de toda estrutura de Inteligência Artificial no Google Cloud, desde a criação das autenticações até a estruturação técnica;
- Realizar a integração entre nosso sistema VoIP e a Inteligência Artificial do Google;
- Realizar os treinamentos do agente virtual para uma experiência conversacional mais fluída e natural;
- Ao final terá um VoiceBOT em funcionamento do zero até sua conversa final, levando toda a inteligência artificial para dentro de um atendimento personalizado;
Este curso lhe capacitará ao futuro da comunicação e de atendimento a clientes, você poderá com o conhecimento adquirido aprimorar e customizar projetos para que consiga agregar ainda mais valor a sua carreira.