Implementação para comunicação com a api do DialogFlow
em python. Para isso acontecer precisa de 2 etapas, fazer a configuração com a chave de autenticação.
Antes você começar programar é melhor ensinar como funciona a API dialogflow
. Diferente de todos os tutoriais vou explicar sucintamente:
O que você vai precisar entender, que para cada frase no dia a dia temos: {inteção
, palavras chaves
, resposta
e contexto
}
Inteção
- a intenção do usuário - o que ele quis- para cada inteção temos:
Contexts
- contexto que o usuário falou aquilo, normalmente é o que vem de outras frasesEvents
- de onde que aquela frase veioTraining phrases
- frases de treinamentoAction and parameters
- ação e palavras chavesResponses
- respostasFulfillment
- ele vai ter tratamento de API
- para cada inteção temos:
Entidade
- as palavras chaves da frases
Para cada intenção pode ter um Fulfillment
diferente;
Vamos pensar na frase
quero tomar um café
- Inteção: usuário quer tomar café - {user.wanna.drink}
Contexts
- vem de outra frase o que o usuário falou?Events
- evento: {tomar algo}Action and parameters
: associado com a parte de Entidadesquero tomar um café {@quantidade} {@hot_drink}
Response
- aqui você cadastra uma resposta para esse exemplo frase ou dá continuidade na conversa:Resposta Simples - Vou redirecionar para o café ou Resposta com continuidade - Que tipo de café você gostaria?
- Entidade:
@hot_drink
- ligado com {café}@quantitade
- ligado com {um}
Para você conseguir trabalhar com a aplicação você deverá fazer o seguinte tutorial:
https://cloud.google.com/docs/authentication/getting-started
O tutorial à principio é fácil de entender, porém toma uma certa complexidade. Em resumo da ópera, para simplificar as coisas você tem que gerar uma chave da aplicação.
Com o seguinte formato:
{
"type": "service_account",
"project_id": "nome-talk-1",
"private_key_id": "private_id",
"private_key": "private_key",
"client_email": "adminmaster@project_id.iam.gserviceaccount.com",
"client_id": "client_id",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": ""
}
Os nomes foram alterados, mas você precisará que seja uma adminmaster ou seja, um administrador da aplicação.
Depois dessa configuração você precisará configurar a chave como uma variável de ambiente com o seguinte nome: {GOOGLE_APPLICATION_CREDENTIALS
}. Depois conseguirá rodar o código.
Esta parte representa a seguinte estrutura de projeto mvc
|-- app/
| -- errors/
| -- handler.py - trata dos erros da página do administrador
| -- main/
| -- form.py - formulário de login
| -- routes.py - rotas para o administrador conseguir validar.
| -- util.py - funções que serão necessárias para a aplicação
| -- models/
| -- models_sql_alchemy.py - models da aplicação
| -- static/
| -- img/ - imagens
| -- js/ - javascript
| -- main.css - o único arquivo css da aplicação
| -- templates/
| -- errors/
| -- 403.html
| -- 404.html
| -- 500.html
| -- home.html - one page do administrador
| -- layout.html - layout da aplicação
| -- login.html - página de login
| -- __init__.py
| -- config.py - para configuração da aplicação (chave, url do banco)
| -- manipulation_base.py - funcoes para manipular o banco
| -- site.db -- banco de dados, em formato sqllite3
|-- run.py -- onde vai acontecer o arquivo para rodar o projeto
Para esse projeto funcionar você deve instalar as seguintes dependências:
* Flask
* Flask-Login
* Flask-SQLAlchemy
* Flask-WTF
* SQLAlchemy
* SpeechRecognition
* dialogflow
* docutils
* google-api-core
* google-auth
* google-cloud
* google-cloud-core
* google-cloud-storage
* secrets2env
* setuptools
DICA:> Se você usar uma IDE, acredito que ele já consegui baixar sozinho.
para você não ficar perdido e entender o que realmente entender o funcionamento etapa por etapa: