botbook/book/chapter-05-gbdialog-reference.md
2022-07-10 14:10:36 -03:00

9.8 KiB

.gbdialog Reference

generalbots-2018

All direct communication from GeneralBots to the end user is made up of the .gbDialog extension. It can be composed of speech or writing directly with the bot. This extension facilitates support related to dialogues, as the system is divided by each service extension.

The Dialog

Communication or dialogue between the end user is one of the most important services of a software, because the smooth functioning of the dialogue directly reflects the functioning for the user .

Using Conversational BASIC

The following file types are loaded from a .gbdialog package: .vbs, .vb, .basic and .bas.

General Bots BASIC reference

Instruction / Usage Description Example
HEAR variable Hears something from the person into a variable for later use.
HEAR name 
TALK "Your name is " + name.
confirm variable (Comming soon) Waits for confirmation like 'yes', 'y', 'yeah' and return true or false
TALK message Talk the specified message to the person.
TALK "Hello world." 
GENERATE A PASSWORD Creates a new password into the system variable password for later use.
CREATE A BOT FARM USING params Deploys a new bot farm to the cloud.
WAIT seconds Wait a number of seconds before continuing the conversation.
variable = GET "file.xlsx", "A1:A1" Gets the value of the cell specified in range address
SET "file.xlsx", "A1:A1", 42 Gets the value of the cell specified in range address
variable = GET "https://server/query" Gets the value of the cell specified in range address
POST "https://", data Gets the value of the cell specified in range address
wait seconds Wait a number of seconds before continuing the conversation.
HEAR variable AS EMAIL
HEAR variable AS DATE
HEAR variable AS NAME
HEAR variable AS INTEGER eg.: HEAR approve as Boolean.
HEAR variable AS BOOLEAN
HEAR variable AS HOUR
HEAR variable AS MONEY
HEAR variable AS MOBILE
* HEAR variable AS FILE Returns a file uploaded by user to be saved with SAVE variable AS "folder/folder/file" on .gbdrive.
HEAR variable AS AUDIO Returns a audio uploaded by user to be saved with SAVE.
HEAR variable AS ZIPCODE
HEAR variable AS "Abacate", "Maçã", "Morango" Displays the specified menu and waits for this input until user select one of them.
HEAR variable AS LANGUAGE
HEAR variable AS LOGIN (internal) Waits for Active Directoy login integration before proceeding with the dialog .
GO TO [number,] dialogName Transfers the conversation to a next dialog for the specificed number or as last command, transfers the context to this dialog.
SEE CAPTION OF url AS variable Extracts an caption, using a pre-trained neural network, from a image.
SEE TEXT OF url AS variable Extracts text from the image in a OCR (Optical Character Recognition) feature.
* data = SELECT a, SUM(b) AS b FROM data GROUP BY a Use SQL to manipulate a data variable returned from FIND or an array variable = CHART "pie", data
* file = data AS IMAGE Converts a two dimension array into an image file, ready to be used with SAVE AS or SEND FILE.
* file = data AS PDF Converts a two dimension array into an PDF file, ready to be used with SAVE AS or SEND FILE.
* page = GET PAGE url Web automation retrival of a web page.
* variable = GET page, cssSelector, "body > img" Retrives an element within an IFRAME specified by selector eg.: "[name=iFrameName]", to be used later.
* SET page, cssSelector, value Define an field to value eg. "value 123" on the webpage specified by selector eg. "#id".
* CLICK page, cssSelector Clicks on an element inside the web page being automated by General Bots.
* file = DOWNLOAD url
  • = Work in progress.

Options

Instruction / Usage Description
SET HTTP HEADER _key = value Defines an HTTP header to be used to next GET call.
SET HTTP USERNAME = value Defines the HTTP username to be used to next GET call.
SET HTTP PASSWORD = value Defines the HTTP password to be used to next GET call.
* SET HEAR ON "mobile"
SET MAX LINES value
SET SCHEDULE "2 * * * * *"
SET LANGUAGE value
SET TRANSLATOR [ON or OFF]
SET WHOLE WORD [TRUE or FALSE]
SET THEME "dark" or "white" or "blue" Defines the theme to the next content generation (PDF, images, vídeos, etc.)
SET OPERATOR [OR] Defines OR operations on multiple FIND filters separated by comma, eg.: FIND "A1=2", "A3=4"
  • = Work in progress.

How To

Use General Bots computer vision

  1. Develop a BASIC dialog and publish;

image

  1. Test it in the conversation

image

Using General Bots Web Automation

mobile = "5521000000000" 

page = GET HTML "https://www.any-website.com/" 
SET page, "#usuario", "user"  
SET page, "#j_password", "xxxxxxxxxxx"   

 
img = GET page, "[name=iCaptcha]", "body > img" 
SEND FILE TO mobile, img 
TALK TO mobile, "Digite o código da imagem para prosseguir:" 
SET HEAR ON mobile 
HEAR captcha  
SET page, "#captcha", captcha 

CLICK page, "#bt-login" 
TALK TO mobile, "Login done, thanks." 

Using General Bots SQL and dynamic image and chart generation

On the fly table as images.

SET MAX LINES 1000 
data = FIND "data.xlsx",  
data = SELECT a, SUM(b) AS b FROM data GROUP BY a 
SET THEME dark 
png = data as IMAGE  
SEND FILE png 

On the fly charts

data = [10, 20, 30] 
legends= "Steve;Yui;Carlos"   
img = CHART "pie", data, legends  
SEND FILE img  
SAVE img as "folder/filename.jpg" 

Using complete General Bots Data Analytics

result = GET "https://api.fiscaldata.treasury.gov/services/api/fiscal_service/v2/accounting/od/gift_contributions?page[size]=500" data = result.data data = SELECT YEAR(record_date) as Yr, SUM(CAST(contribution_amt AS NUMBER)) AS Amount FROM data GROUP BY YEAR(record_date)

TALK "Demonstration of Gift Contributions with AS IMAGE keyword" SET THEME dark png = data as IMAGE
SEND FILE png

DELAY 5 TALK " Demonstration of Gift Contributions CHART keyword" img = CHART "bar", data
SEND FILE img

image

Using General Bots Office templates

data = FIND "Customer.xlsx", "Idade=25" 
doc = TEMPLATE "template.docx" WITH data 
SAVE doc AS "resume.docx" 
SEND EMAIL "noreply@pragmatismo.io", "Subject", doc 

Using POST data

You can use POST passing a variable as the second param in the POST call. The example bellow shows how to call POST using an object that is returned from the Excel file.

Given the Excel file with the following contents and saved to the standard .gbdialog folder:

tokenId token comment
29187 AAMkAGEzMWIxMmI5 Prod1
98739 jZWYtNGQ3My1iNmM Prod2

The Word bellow will invoke POST call by using line contents as object attributes:

obj = FIND "dados.xlsx", "tokenId=29187"
POST "https://server/query", obj
' obj here is {tokenId: 29187, token: "AAMkAGEzMWIxMmI5", comment: "Prod1"}
  • OAuth2 is being implemented and no modification to previous calls will be necessary as this configuration will be an administrative conversation to get the token setup.

Generate a password for the person



talk "Let's generate a very dificult to guess password for the new bot:"
generate a password
talk "Your password is *" + password + "*. Keep it on a safe place only acessible to you."


Get the list of cloud subscriptions


hear one of subscriptions with email, password into subscriptionId
talk "The subscription selected was: " + subscriptionId