fix(all): New templates.
|
|
@ -1,12 +1,12 @@
|
|||
import { GBConfigService } from "../packages/core.gbapp/services/GBConfigService";
|
||||
import { app, BrowserWindow } from 'electron';
|
||||
import path from 'path';
|
||||
import url from 'url';
|
||||
|
||||
const { app, BrowserWindow } = require('electron');
|
||||
const path = require('path');
|
||||
const url = require('url');
|
||||
export function runUI() {
|
||||
|
||||
function createWindow() {
|
||||
// Create the browser window.
|
||||
const win = new BrowserWindow({ width: 800, height: 600 });
|
||||
const win = new BrowserWindow({ width: 800, height: 600, title: 'General Bots Studio' });
|
||||
|
||||
// and load the index.html of the app.
|
||||
win.loadURL(
|
||||
|
|
@ -18,4 +18,4 @@ function createWindow() {
|
|||
);
|
||||
}
|
||||
|
||||
app.on('ready', createWindow);
|
||||
app.on('ready', runUI);
|
||||
|
|
|
|||
121
templates/api-client.gbai/api-client.gbdialog/partner-center.vbs
Normal file
|
|
@ -0,0 +1,121 @@
|
|||
REM SET SCHEDULE "1 * * * * *"
|
||||
|
||||
REM Obtém token do Partner Center via token do AD.
|
||||
|
||||
SET HEADER "return-client-request-id" AS "true"
|
||||
SET HEADER "Content-Type" As "application/x-www-form-urlencoded; charset=utf-8"
|
||||
|
||||
pcToken = POST "https://login.microsoftonline.com/" + tenantId + "/oauth2/token", "resource=https%3A%2F%2Fgraph.windows.net&client_id=" + clientId + "&client_secret=" + clientSecret + "&grant_type=client_credentials"
|
||||
|
||||
REM repara chamada de Billing.
|
||||
|
||||
SET HEADER "Authorization" AS "Bearer " + pcToken.access_token
|
||||
SET HEADER "MS-Contract-Version" AS "v1"
|
||||
SET HEADER "MS-CorrelationId" AS uuid()
|
||||
SET HEADER "MS-RequestId" AS uuid()
|
||||
SET HEADER "MS-PartnerCenter-Application" AS "General Bots"
|
||||
SET HEADER "X-Locale" AS "en-US"
|
||||
|
||||
REM Sincroniza Customers e Subscriptions
|
||||
|
||||
SET PAGE MODE "none"
|
||||
list = GET host + "/v1/customers?size=20000"
|
||||
MERGE "Customers" WITH list.items BY "Id"
|
||||
|
||||
FOR EACH item IN list
|
||||
subs = GET host + "/v1/customers/" + item.id + "/subscriptions"
|
||||
MERGE "Subscriptions" WITH subs.items BY "Id"
|
||||
END FOR
|
||||
|
||||
|
||||
REM Determina período.
|
||||
|
||||
IF today = dueDay THEN
|
||||
IF period = "previous" AND NOT CONTINUATION TOKEN THEN
|
||||
period = "current"
|
||||
ELSE
|
||||
period = "previous"
|
||||
END IF
|
||||
ELSE
|
||||
period = "current"
|
||||
END IF
|
||||
|
||||
|
||||
|
||||
REM Perform the call and loop through the billing items.
|
||||
|
||||
SET PAGE MODE "auto"
|
||||
list = GET host + "/v1/invoices/unbilled/lineitems?provider=onetime&invoicelineitemtype=usagelineitems¤cycode=" + currency + "&period=previous&idparceiro=" + idparceiro
|
||||
FOR EACH item IN list
|
||||
SAVE "Billing", item.alternateId, item.availabilityId, item.billableQuantity, item.billingFrequency, item.chargeEndDate, item.chargeStartDate, item.chargeType, item.currency, item.customerCountry, item.customerDomainName, item.customerId, item.customerName, item.effectiveUnitPrice, item.invoiceNumber, item.meterDescription, item.mpnId, item.orderDate, item.orderId, item.partnerId, item.pCToBCExchangeRate, item.pCToBCExchangeRateDate, item.priceAdjustmentDescription, item.pricingCurrency, item.productId, item.productName, item.publisherId, item.publisherName, item.quantity, item.resellerMpnId, item.reservationOrderId, item.skuId, item.skuName, item.subscriptionDescription, item.subscriptionId, item.subtotal, item.taxTotal, item.termAndBillingCycle, item.totalForCustomer, item.unitPrice, item.unitType
|
||||
END FOR
|
||||
|
||||
|
||||
TABLE Billing
|
||||
CustomerId Customers
|
||||
ResourceGroup string(200)
|
||||
ResourceUri string(1000)
|
||||
Tags string(max)
|
||||
AdditionalInfo string(max)
|
||||
ServiceInfo1 string(max)
|
||||
ServiceInfo2 string(max)
|
||||
CustomerCountry string(6)
|
||||
MpnId string(50)
|
||||
ResellerMpnId string(50)
|
||||
ChargeType string(200)
|
||||
UnitPrice* double
|
||||
Quantity* double
|
||||
UnitType string(max)
|
||||
BillingPreTaxTotal double
|
||||
BillingCurrency string(6)
|
||||
PricingPreTaxTotal double
|
||||
PricingCurrency string(6)
|
||||
EntitlementId string(50)
|
||||
EntitlementDescription string(400)
|
||||
PCToBCExchangeRate double
|
||||
PCToBCExchangeRateDate date
|
||||
EffectiveUnitPrice* double
|
||||
RateOfPartnerEarnedCredit double
|
||||
ConsumedService string(200)
|
||||
ResourceLocation string(100)
|
||||
MeterRegion string(100)
|
||||
PartnerId string(50)
|
||||
PartnerName string(400)
|
||||
CustomerName string(400)
|
||||
CustomerDomainName string(400)
|
||||
InvoiceNumber string(400)
|
||||
ProductId string(50)
|
||||
SkuId string(50)
|
||||
AvailabilityId string(50)
|
||||
SkuName string(200)
|
||||
ProductName string(400)
|
||||
PublisherName string(200)
|
||||
PublisherId string(200)
|
||||
SubscriptionId string(50)
|
||||
SubscriptionDescription string(400)
|
||||
ChargeStartDate* date
|
||||
ChargeEndDate* date
|
||||
UsageDate date
|
||||
MeterType string(400)
|
||||
MeterCategory string(100)
|
||||
MeterId string(50)
|
||||
MeterSubCategory string(100)
|
||||
MeterName string(200)
|
||||
UnitOfMeasure string(100)
|
||||
Reprocess boolean
|
||||
END TABLE
|
||||
|
||||
|
||||
TABLE Customers
|
||||
TenantId guid
|
||||
CompanyName string(100)
|
||||
Id guid
|
||||
END TABLE
|
||||
|
||||
|
||||
TABLE Subscriptions
|
||||
CustomerId Customers
|
||||
Id guid
|
||||
OfferName string(50)
|
||||
END TABLE
|
||||
|
||||
79
templates/api-server.gbai/api.gbdialog/start.bas
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
REM 302 / 1234
|
||||
PARAM barraca AS number LIKE Código da barraca
|
||||
PARAM operador AS number LIKE Código do operador
|
||||
DESCRIPTION Esta função (tool) nunca é chamada pelo GPT. É um WebService do GB.
|
||||
|
||||
REM Login como Garçom
|
||||
data = NEW OBJECT
|
||||
data.IdentificadorOperador = operador
|
||||
data.BarracaId = barraca
|
||||
login = POST "https://api.server.com.br/api/Operadores/Login", data
|
||||
SET HEADER "Authorization" AS login.accessToken
|
||||
|
||||
REM Obter o cardápio da Barraca - Utilizar o token recuperado acima.
|
||||
data = GET "https://api.server.com.br/api/Item/Barraca/${barraca}/Cliente"
|
||||
produtos = NEW ARRAY
|
||||
|
||||
FOR EACH item IN data[0].itens
|
||||
IF item.statusItem = "Ativo" THEN
|
||||
produto = NEW OBJECT
|
||||
produto.id = item.id
|
||||
produto.valor = item.valor
|
||||
produto.nome = item.produto.nome
|
||||
produto.detalhe = item.detalhe
|
||||
produto.acompanhamentos = item.gruposAcompanhamento
|
||||
|
||||
produtos.push(produto)
|
||||
END IF
|
||||
NEXT
|
||||
|
||||
BEGIN SYSTEM PROMPT
|
||||
Você deve atuar como um chatbot que irá auxiliar o atendente de uma loja respeitando as seguintes regras:
|
||||
Sempre que o atendente fizer um pedido e deve incluir a mesa e o nome do cliente. Exemplo: Uma caipirinha de 400ml de Abacaxi para Rafael na mesa 10.
|
||||
Os pedidos são feitos com base nos produtos e acompanhamentos deste cardápio de produtos:
|
||||
${JSON.stringify (produtos)}.
|
||||
A cada pedido realizado, retorne JSON contendo o nome do produto, a mesa e uma lista de acompanhamentos com seus respectivos ids.
|
||||
Mantenha itensPedido com apenas um item e mantenha itemsAcompanhamento apenas com os acompanhamentos que foram especificados.
|
||||
ItensAcompanhamento deve conter a coleção de itens de acompanhamento do pedido, que é solicitado quando o pedido é feito, por exemplo: Caipirinha de Morango com Gelo, Açúcar e Limão, gerariam três elementos neste nó.
|
||||
|
||||
Segue o exemplo do JSON do Pedido, apague os itens e mande um com o pedido feito pela pessoa, é apenas um exemplo:
|
||||
{
|
||||
itensPedido: [
|
||||
{
|
||||
item: {
|
||||
id: 23872,
|
||||
valor: 20,
|
||||
nome: Caipirinha Limão
|
||||
},
|
||||
itensAcompanhamento: [
|
||||
{
|
||||
id: 0,
|
||||
valor: 0,
|
||||
quantidade: 1
|
||||
}
|
||||
],
|
||||
quantidade: 1,
|
||||
observacao: a
|
||||
},
|
||||
{
|
||||
item: {
|
||||
id: 25510,
|
||||
valor: 12,
|
||||
nome: Heineken Lata 350ml
|
||||
},
|
||||
itensAcompanhamento: [],
|
||||
quantidade: 1,
|
||||
observacao: nenhuma
|
||||
}
|
||||
],
|
||||
barracaId: ${barraca},
|
||||
usuarioId: ${operador},
|
||||
identificadorConta: Rafael,
|
||||
tipoEntregaId: 2,
|
||||
camposTipoEntrega: {
|
||||
Mesa: 5
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
END SYSTEM PROMPT
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
list = DIR "QCARobot.gbdrive"
|
||||
|
||||
FOR EACH item IN list
|
||||
TALK "Verificando: " + item.name
|
||||
DEBUG item
|
||||
oldDays = DATEDIFF date, item.modified, "day"
|
||||
|
||||
IF oldDays > 3 THEN
|
||||
TALK "O arquivo ${item.name} será arquivado, pois está expirado."
|
||||
blob = UPLOAD item
|
||||
TALK Upload para o Azure realizado.
|
||||
|
||||
SAVE "log.xlsx", "archived",today,now, item.path, item.name, item.size, item.modified, blob.md5
|
||||
REM DELETE item
|
||||
REM TALK Arquivo removido do SharePoint.
|
||||
ELSE
|
||||
TALK "O arquivo ${item.name} não precisa de arquivamento."
|
||||
END IF
|
||||
NEXT
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
|
||||
REM SET SCHEDULE "1 * * * * *"
|
||||
|
||||
billing = FIND "Billing"
|
||||
|
||||
REM Consumo Mensal de barras.
|
||||
|
||||
data = SELECT SUM(effectiveUnitPrice) as Value, MONTH(usageDate)+'/'+YEAR(usageDate) from billing GROUP BY MONTH(date), YEAR(date)
|
||||
img = CHART "timseries", data
|
||||
SEND FILE img, "Consumo Mensal"
|
||||
|
||||
REM Categoria do Produto
|
||||
|
||||
data = SELECT SUM(effectiveUnitPrice) as Value, meterCategory from billing GROUP BY meterCategory
|
||||
img = CHART "donut", data
|
||||
SEND FILE img, "Categoria do Produto"
|
||||
|
||||
REM Sub Categoria do Produto
|
||||
|
||||
data = SELECT SUM(effectiveUnitPrice) as Value, meterSubCategory from billing GROUP BY meterCategory
|
||||
img = CHART "donut", data
|
||||
SEND FILE img, "Subcategoria do Produto"
|
||||
|
||||
REM Nome do Produto (Resumido)
|
||||
REM productName
|
||||
|
||||
REM Região do Recurso
|
||||
REM resourceLocation
|
||||
|
||||
REM Grupo do Recurso
|
||||
REM resourceGroup
|
||||
|
||||
|
||||
REM Consumo Mensal de barras (Envio individual para cada cliente)
|
||||
|
||||
customers = FIND "Customers"
|
||||
FOR EACH c IN customers
|
||||
data = SELECT SUM(effectiveUnitPrice) as Value, MONTH(usageDate)+'/'+YEAR(usageDate) from billing GROUP BY MONTH(date), YEAR(date) WHERE customerId = c.id
|
||||
img = CHART "timseries", data
|
||||
SEND FILE img, "Consumo Mensal"
|
||||
END FOR
|
||||
|
||||
|
|
@ -1,77 +0,0 @@
|
|||
' General Bots Copyright (c) pragmatismo.cloud. All rights reserved. Licensed under the AGPL-3.0.
|
||||
' Rules from http://jsfiddle.net/roderick/dym05hsy
|
||||
|
||||
talk "How many installments do you want to pay your Credit?"
|
||||
hear installments
|
||||
|
||||
if installments > 60 then
|
||||
talk "The maximum number of payments is 60"
|
||||
else
|
||||
talk "What is the amount requested?"
|
||||
hear amount
|
||||
|
||||
if amount >100000 then
|
||||
talk "We are sorry, we can only accept proposals bellow 100k"
|
||||
else
|
||||
|
||||
talk "What is the best due date?"
|
||||
hear dueDate
|
||||
|
||||
interestRate = 0
|
||||
adjustment = 0
|
||||
|
||||
if installments < 12 then
|
||||
interestRate = 1.60
|
||||
adjustment = 0.09748
|
||||
end if
|
||||
|
||||
if installments > 12 and installments < 18 then
|
||||
interestRate = 1.66
|
||||
adjustment = 0.06869
|
||||
end if
|
||||
|
||||
if installments > 18 and installments < 36 then
|
||||
interestRate = 1.64
|
||||
adjustment = 0.05397
|
||||
end if
|
||||
|
||||
if installments > 36 and installments < 48 then
|
||||
interestRate = 1.62
|
||||
adjustment = 0.03931
|
||||
end if
|
||||
|
||||
if installments > 48 and installments < 60 then
|
||||
interestRate = 1.70
|
||||
adjustment = 0.03270
|
||||
end if
|
||||
|
||||
if installments = 60 then
|
||||
interestRate = 1.79
|
||||
adjustment = 0.02916
|
||||
end if
|
||||
|
||||
if installments > 60 then
|
||||
talk "The maximum number of payments is 60"
|
||||
end if
|
||||
|
||||
nInstallments = parseInt(installments)
|
||||
vamount = parseFloat(amount)
|
||||
initialPayment = vamount * 0.3 ' 30% of the value
|
||||
tac = 800
|
||||
adjustment = 1.3
|
||||
|
||||
totalValue = amount - initialPayment + tac
|
||||
paymentValue = totalValue * adjustment
|
||||
finalValue = paymentValue * nInstallments + initialPayment
|
||||
|
||||
talk "Congratulations! Your credit analysis is **done**:"
|
||||
talk "First payment: **" + initialPayment + "**"
|
||||
talk "Payment value: **" + paymentValue + "**"
|
||||
talk "Interest Rate: **" + interestRate + "%**"
|
||||
talk "Total Value: **" + totalValue + "**"
|
||||
talk "Final Value: **" + finalValue + "**"
|
||||
|
||||
|
||||
|
||||
end if
|
||||
end if
|
||||
10
templates/default.gbai/default.gbdialog/broadcast.bas
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
lista = find "broadcast.csv"
|
||||
indice = 1
|
||||
do while indice < ubound(lista)
|
||||
linha = lista[indice]
|
||||
TALK TO linha.mobile, "Oi, " + linha.name + ". Tudo bem? How about *General Bots* deployed? "
|
||||
wait 5
|
||||
save “Log.xlsx”, today, now, username, from,linha.mobile, linha.name
|
||||
indice = indice + 1
|
||||
loop
|
||||
talk “O envio foi realizado. “
|
||||
16
templates/default.gbai/default.gbdialog/cadastro-evento.bas
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
TALK "Olá, por favor, qual seu nome completo?"
|
||||
HEAR nome
|
||||
TALK "Qual o seu email para contato? "
|
||||
HEAR email
|
||||
TALK "Qual o seu telefone para contato? "
|
||||
HEAR telefone
|
||||
TALK "Função? "
|
||||
HEAR funcao
|
||||
TALK "Qual empresa que estará representando? "
|
||||
HEAR empresa
|
||||
TALK "É freelancer?"
|
||||
HEAR freelancer AS BOOLEAN
|
||||
TALK "Você pretende participar do evento em qual cidade? "
|
||||
HEAR cidade AS "São Paulo", "Rio de Janeiro"
|
||||
TALK "Você deseja receber outras informações do mailing da Quanta?"
|
||||
SAVE "pessoas.xlsx", nome, email, telefone, funcao, empresa, freelancer
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
' General Bots Copyright (c) pragmatismo.cloud. All rights reserved. Licensed under the AGPL-3.0.
|
||||
|
||||
talk "Quer pagar quanto?"
|
||||
hear amount
|
||||
|
||||
talk "Para onde?"
|
||||
hear address
|
||||
|
||||
if amount < 5 then
|
||||
talk "O mínimo que vendo este produto é 5."
|
||||
else
|
||||
|
||||
if address is in "Rio" then
|
||||
get payment amount
|
||||
delivery to address
|
||||
else
|
||||
talk "Vou ver se tenho um parceiro para entregar aí e te falo. Eu só entrego no Rio."
|
||||
end if
|
||||
end if
|
||||
|
||||
talk "Valeu!"
|
||||
|
||||
|
||||
|
||||
Falar "Qual seu nome?"
|
||||
Ouvir nome
|
||||
|
||||
Falar "Informe seu CEP, por favor:"
|
||||
Ouvir CEP
|
||||
|
||||
Address = CEP
|
||||
|
||||
Confira seu endereço:
|
||||
|
||||
Address.Street
|
||||
Address.Number
|
||||
|
||||
|
||||
Falar "Manda sua localização para eu pedir a alguém para sair agora com o seu pedido"
|
||||
Hear Location
|
||||
|
||||
SAve "Pedidos.xlsx", Nome, From, Location.Street, Location.Number
|
||||
|
||||
|
||||
|
||||
Falar "Manda sua localização que eu encontro o posto mais próximo"
|
||||
Hear Location
|
||||
|
||||
Find "Postos.xlsx", "Endereço=" + Location
|
||||
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
|
||||
|
||||
if consulta = "cpf" then
|
||||
talk "Qual seu CPF?"
|
||||
hear cpf
|
||||
talk "Aguarde alguns instantes que eu localizo seu cadastro..."
|
||||
row = find "Cadastro.xlsx", "CPF=" + cpf
|
||||
if row != null then
|
||||
talk "Oi, " + row.Nome + "Tudo bem? "
|
||||
talk "Seu código de cliente é " + row.Cod
|
||||
talk "Vamos te enviar o pedido para seu endereço em: " + row.Endereço
|
||||
send file "boleta.pdf", "Pague já e evite multas!"
|
||||
else
|
||||
talk "Tente novamente."
|
||||
end if
|
||||
else
|
||||
talk "Qual seria seu código?"
|
||||
hear cod
|
||||
talk "Aguarde alguns instantes que eu localizo seu cadastro..."
|
||||
row = find "Cadastro.xlsx", "Cod=" + cod
|
||||
if row != null then
|
||||
talk "Oi, " + row.Nome + "Tudo bem? "
|
||||
talk "Seu CPF é " + row.CPF
|
||||
talk "Vamos te enviar o pedido para seu endereço em: " + row.Endereço
|
||||
send file "boleta.pdf", "Pague já e evite multas!"
|
||||
else
|
||||
talk "Tente novamente."
|
||||
end if
|
||||
end if
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
talk “Olá! Seja bem vinda(o)!”
|
||||
|
||||
X = find “campanhas.xlsx”, “nome=1239” OR TALK “Desculpe-me, não localizei seu nome.”
|
||||
|
||||
talk “opa, vamos lá!” + x.nome
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
' General Bots Copyright (c) pragmatismo.cloud. All rights reserved. Licensed under the AGPL-3.0.
|
||||
|
||||
talk "Quer pagar quanto?"
|
||||
hear amount
|
||||
|
||||
if amount < 5 then
|
||||
talk "O mínimo que vendo este produto é 5."
|
||||
else
|
||||
get payment amount
|
||||
end if
|
||||
|
||||
talk "Valeu!"
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
value = get "list.xslx", "A1:A1"
|
||||
|
||||
set "list.xslx", "A1:A1", "value"
|
||||
|
||||
myVar = find "chamadosbug748.xlsx", "CHAMADO=" + "5521979047667-44129-10"
|
||||
status="alterado"
|
||||
set "chamadosbug748.xlsx", "E" + myVar.line + ":E" + myVar.line, status
|
||||
res = get "chamadosbug748.xlsx", "E" + myVar.line + ":E" + myVar.line
|
||||
talk "Obrigado e até a próxima e veja bem, o resultado é esse: " + res
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
|
||||
user = get "http://server/path"
|
||||
|
||||
user = post "http://server/path", "data"
|
||||
|
||||
Talk “ The user area is” + user.area, user.validuser, user.user
|
||||
77
templates/default.gbai/default.gbdialog/interest.bas
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
' General Bots Copyright (c) pragmatismo.cloud. All rights reserved. Licensed under the AGPL-3.0.
|
||||
' Rules from http://jsfiddle.net/roderick/dym05hsy
|
||||
|
||||
talk "How many installments do you want to pay your Credit?"
|
||||
hear installments
|
||||
|
||||
If installments > 60 Then
|
||||
talk "The maximum number of payments is 60"
|
||||
Else
|
||||
talk "What is the amount requested?"
|
||||
hear amount
|
||||
|
||||
If amount > 100000 Then
|
||||
talk "We are sorry, we can only accept proposals bellow 100k"
|
||||
Else
|
||||
|
||||
talk "What is the best due date?"
|
||||
hear dueDate
|
||||
|
||||
interestRate = 0
|
||||
adjustment = 0
|
||||
|
||||
If installments < 12 Then
|
||||
interestRate = 1.60
|
||||
adjustment = 0.09748
|
||||
End If
|
||||
|
||||
If installments > 12 And installments < 18 Then
|
||||
interestRate = 1.66
|
||||
adjustment = 0.06869
|
||||
End If
|
||||
|
||||
If installments > 18 And installments < 36 Then
|
||||
interestRate = 1.64
|
||||
adjustment = 0.05397
|
||||
End If
|
||||
|
||||
If installments > 36 And installments < 48 Then
|
||||
interestRate = 1.62
|
||||
adjustment = 0.03931
|
||||
End If
|
||||
|
||||
If installments > 48 And installments < 60 Then
|
||||
interestRate = 1.70
|
||||
adjustment = 0.03270
|
||||
End If
|
||||
|
||||
If installments = 60 Then
|
||||
interestRate = 1.79
|
||||
adjustment = 0.02916
|
||||
End If
|
||||
|
||||
If installments > 60 Then
|
||||
talk "The maximum number of payments is 60"
|
||||
End If
|
||||
|
||||
nInstallments = parseInt(installments)
|
||||
vamount = parseFloat(amount)
|
||||
initialPayment = vamount * 0.3 ' 30% of the value
|
||||
tac = 800
|
||||
adjustment = 1.3
|
||||
|
||||
totalValue = amount - initialPayment + tac
|
||||
paymentValue = totalValue * adjustment
|
||||
finalValue = paymentValue * nInstallments + initialPayment
|
||||
|
||||
talk "Congratulations! Your credit analysis is **done**:"
|
||||
talk "First payment: **" + initialPayment + "**"
|
||||
talk "Payment value: **" + paymentValue + "**"
|
||||
talk "Interest Rate: **" + interestRate + "%**"
|
||||
talk "Total Value: **" + totalValue + "**"
|
||||
talk "Final Value: **" + finalValue + "**"
|
||||
|
||||
|
||||
|
||||
End If
|
||||
End If
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
talk "Qual seu pedido?"
|
||||
hear pedido
|
||||
talk "Qual seu e-mail?"
|
||||
hear email
|
||||
talk "Obrigado, seu pedido será processado e retornamos."
|
||||
ask payment
|
||||
|
||||
|
||||
talk "Qual seu pedido?"
|
||||
hear pedido
|
||||
talk "Obrigado. Agora informe seu nome:"
|
||||
Hear nome
|
||||
Talk "Obrigado" + nome + "! Agora falta saber onde vamos entregar. Qual seu endereço?"
|
||||
Hear endereço
|
||||
Save "BistroBot.gbdata\pedidos.xlsx", nome, pedido, endereço, phone
|
||||
Talk "Aguarde, enquanto eu calculo o valor total do seu pedido. Volto em alguns minutos, aguarde!"
|
||||
Total = Ask "+5521999995555", "Qual o valor para o pedido da(o)" + nome +"?"
|
||||
ask payment Total
|
||||
|
||||
Talk "Qual seunome? "
|
||||
Hear nome
|
||||
Talk "Qual o valor pedido?"
|
||||
Hear pedido
|
||||
Save "Contoso.gbdata\ Aprovações.xlsx", nome, pedido, phone
|
||||
Ask "+5521999995555", "Aprove por favor o pedido tal "
|
||||
Talk "Sua aprovação foi enviada, aguarde."
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
|
||||
talk "O seu nome, por favor?"
|
||||
hear nome
|
||||
|
||||
talk "Qual seu pedido?"
|
||||
hear details
|
||||
|
||||
talk "Valeu " + nome + "! Agora falta saber onde vamos entregar. \nQual seu endereço?"
|
||||
hear address
|
||||
|
||||
save "Pedidos.xlsx", id, nome, from, address, details, today
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
' General Bots Copyright (c) pragmatismo.cloud. All rights reserved. Licensed under the AGPL-3.0.
|
||||
|
||||
talk "Please, tell me what is the Bot name?"
|
||||
hear title
|
||||
|
||||
talk "If you tell me your username/password, I can show service subscription list to you."
|
||||
talk "What is your Username (eg.: human@domain.bot)"
|
||||
hear email
|
||||
|
||||
talk "What is your Password"
|
||||
hear password
|
||||
|
||||
talk "Your password? (Will be discarded after sigining process)"
|
||||
talk "Can you describe in a few words what the bot is about?"
|
||||
hear description
|
||||
|
||||
talk "Please, paste the Subscription ID (Azure):"
|
||||
hear subscriptionId
|
||||
|
||||
talk "Please, provide the cloud location just like 'westus'?"
|
||||
hear location
|
||||
|
||||
talk "Please, provide the Authoring Key for NLP service (LUIS)?"
|
||||
hear authoringKey
|
||||
|
||||
talk "Sorry, this part cannot be automated yet due to Microsoft schedule, please go to https://apps.dev.microsoft.com/portal/register-app to generate manually an App ID and App Secret."
|
||||
wait 5
|
||||
|
||||
talk "Please, provide the App ID you just generated:"
|
||||
hear appId
|
||||
|
||||
talk "Please, provide the Generated Password:"
|
||||
hear appPassword
|
||||
|
||||
talk "Now, I am going to create a Bot farm... Wait 5 minutes or more..."
|
||||
|
||||
create a bot farm using title, email, password, location, authoringKey, appId, appPassword, subscriptionId
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
|
||||
|
||||
talk "qual seu nome?"
|
||||
hear nome
|
||||
talk "qual seu e-mail?"
|
||||
hear email
|
||||
|
||||
documento = "meutemplate.docx", nome, email,
|
||||
|
||||
send file documento
|
||||
|
||||
save file documento, "curriculos/nome" + ".docx"
|
||||
|
||||
' $name
|
||||
|
||||
'$trabalho
|
||||
|
||||
'Experiência
|
||||
'$ano1
|
||||
'$oquefoifeitoAno1
|
||||
'$ano2
|
||||
'$oquefoifeitoAno2
|
||||
'$ano3
|
||||
'$oquefoifeitoAno1
|
||||
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
rem hi
|
||||
|
||||
talk "Qual seu nome?"
|
||||
hear name
|
||||
|
||||
talk "Qual seu CPF?"
|
||||
hear CPF
|
||||
|
||||
talk "Por que você abrirá este chamado?"
|
||||
hear translated motivo
|
||||
|
||||
talk "Seu nome: " + name
|
||||
talk "Você disse em Português " + motivo.
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
SET MAX LINES 1000
|
||||
list = FIND "Mailing Global.xlsx"
|
||||
indice = 1
|
||||
do while indice < ubound(list)
|
||||
row = list[indice]
|
||||
valid = IS VALID row.email
|
||||
indice = indice + 1
|
||||
IF valid THEN
|
||||
Set "Mailing Global.xlsx", "B" + indice , "x"
|
||||
END IF
|
||||
loop
|
||||
talk “Validate OK. “
|
||||
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
BIN
templates/default.gbai/default.gbdrive/template.docx
Normal file
|
|
@ -1,16 +1,16 @@
|
|||
#Desenvolvimento Personalizado
|
||||
# Desenvolvimento Personalizado
|
||||
|
||||
General Bots usa linguagem natural para entender o que as pessoas querem, facilitando o desenvolvimento de código. Quando alguém diz: "Preciso do relatório mensal" ou "Imprima o relatório do mês", General Bots entende o mesmo. Utilize o nosso desenvolvimento para estender a conversa com suas próprias regras e intenções.
|
||||
|
||||
#Descoberta
|
||||
# Descoberta
|
||||
|
||||
General Bots pode pró-ativamente sugerir suas habilidades para os usuários baseada no contexto, como solicitação de um pedido, envio de uma mensagem, agendamento de uma conferência telefônica ou qualquer ação definida na sua aplicação.
|
||||
|
||||
#Torne pessoal
|
||||
# Torne pessoal
|
||||
|
||||
Entregue experiências únicas através do conhecimento que a General Bots possui sobre seus usuários e preferências, para ajudar a tomar decisões e apresentar sempre o melhor cenário.
|
||||
|
||||
#Sem downloads adicionais
|
||||
# Sem downloads adicionais
|
||||
|
||||
A interface da sua aplicação é automaticamente integrada à General Bots, de modo que não seja necessário realizar download ou instalações.
|
||||
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
Últimas notícias
|
||||
Contato
|
||||
Ofertas
|
||||
0
templates/default.gbai/default.gbkb/images/placeholder
Normal file
10
templates/default.gbai/default.gbkb/menu.csv
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
welcome,,,
|
||||
who we are,,,
|
||||
contact us,,,
|
||||
about,,,
|
||||
,us,,
|
||||
,,music,
|
||||
,,painting,
|
||||
,,anything,
|
||||
,,,else
|
||||
Cookies,,,
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"botId":"pragmatismo-ai-prd",
|
||||
"version": "1.0.0",
|
||||
"description": "Bot pragmatismo.",
|
||||
"license": "Private"
|
||||
}
|
||||
|
|
@ -1,58 +0,0 @@
|
|||
{
|
||||
"children": [
|
||||
{
|
||||
"title": "Bots & AI",
|
||||
"description": "Bots & inteligência artificial.",
|
||||
"id": "bots-ai",
|
||||
"children": [
|
||||
{
|
||||
"title": "General Bots",
|
||||
"description": "Plataforma de bots da pragmatismo.cloud.",
|
||||
"id": "general-bots"
|
||||
},
|
||||
{
|
||||
"title": "Cortana Intelligence Suite",
|
||||
"description": "Suite de Big Data da Microsoft.",
|
||||
"id": "cortana"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Produtividade",
|
||||
"description": "Artigos sobre sistemas Internos.",
|
||||
"id": "produtividade",
|
||||
"children": [
|
||||
{
|
||||
"title": "Microsoft Project Online",
|
||||
"description": "Artigos sobre o Microsoft Project Online.",
|
||||
"id": "msproject"
|
||||
},
|
||||
{
|
||||
"title": "SharePoint",
|
||||
"description": "SharePoint, sites e serviços.",
|
||||
"id": "sharepoint"
|
||||
},
|
||||
{
|
||||
"title": "Office 365",
|
||||
"description": "Plataforma colaborativa moderna da Microsoft.",
|
||||
"id": "office365"
|
||||
},
|
||||
{
|
||||
"title": "Microsoft Dynamics",
|
||||
"description": "Artigos sobre plataforma de CRM da Microsoft.",
|
||||
"id": "msdynamics"
|
||||
},
|
||||
{
|
||||
"title": "Power BI",
|
||||
"description": "Dashboards modernos e intuitivos.",
|
||||
"id": "powerbi"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"title": "Sobre",
|
||||
"description": "Artigos sobre o Bot da pragmatismo.cloud",
|
||||
"id": "sobre"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
Before Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 8.8 KiB |
|
Before Width: | Height: | Size: 8.8 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 2 KiB |
|
54
templates/default.gbai/default.gbot/config.csv
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
name,value
|
||||
.gbapp List,
|
||||
Admin Notify E-mail,
|
||||
AdminNotify SMS Number,
|
||||
Answer Mode,
|
||||
Azure Open AI Embedding Model,
|
||||
Azure Open AI Endpoint,
|
||||
Azure Open AI GPT Model,
|
||||
Azure Open AI Image Model,
|
||||
Azure Open AI Instance,
|
||||
Azure Open AI Key,
|
||||
Azure Open AI Version,
|
||||
Blob Account,
|
||||
Blob Key,
|
||||
Blob Name,
|
||||
Bot Admin Number,
|
||||
Bot Number,
|
||||
Can Publish,
|
||||
Color1,
|
||||
Color2,
|
||||
Debug Web Automation,
|
||||
Default Content Language,
|
||||
Default User Language,
|
||||
Domain,
|
||||
Enable Audio Hearing,
|
||||
Feedback Improve Message,
|
||||
Group Spell,
|
||||
Keep Text,
|
||||
Language Detector,
|
||||
library,
|
||||
Logo,
|
||||
Logo Image Height,
|
||||
Logo Image Url,
|
||||
Logo Image Width,
|
||||
Marketplace Bot Id,
|
||||
Merchant ID,
|
||||
Merchant Key,
|
||||
NLP Score,
|
||||
Notes,
|
||||
Open AI Key,
|
||||
Search Score,
|
||||
Start Dialog,
|
||||
Store Answer Score,
|
||||
Synchronize Database,
|
||||
Transfer To,
|
||||
Twitter Access Token,
|
||||
Twitter Access Token Secret,
|
||||
Twitter Consumer Key,
|
||||
Twitter Consumer Key Secret,
|
||||
Website,
|
||||
Welcome Article,
|
||||
WhatsApp Admins,
|
||||
WhatsApp Group ID,
|
||||
WhatsApp Group Shortcuts,
|
||||
|
|
|
@ -1,171 +0,0 @@
|
|||
body {
|
||||
background-color: #dadada !important;
|
||||
}
|
||||
|
||||
.loader {
|
||||
opacity: 1 !important;
|
||||
filter: opacity(100%);
|
||||
}
|
||||
|
||||
|
||||
.gb-quality-button-yes {
|
||||
width: 54px;
|
||||
text-decoration: none;
|
||||
text-transform: uppercase;
|
||||
background-color: green;
|
||||
color: white;
|
||||
padding: 2px;
|
||||
cursor: pointer;
|
||||
transition: 0.9s;
|
||||
transition-delay: 0.3s;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.gb-quality-button-no {
|
||||
width: 54px;
|
||||
text-decoration: none;
|
||||
text-transform: uppercase;
|
||||
background-color: red;
|
||||
color: white;
|
||||
padding: 2px;
|
||||
cursor: pointer;
|
||||
transition: 0.9s;
|
||||
transition-delay: 0.3s;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.gb-markdown-player-quality {
|
||||
background-color: #f5e4a8;
|
||||
padding: 4px;
|
||||
position: absolute;
|
||||
bottom: 14px;
|
||||
left: -9px;
|
||||
width: 100%;
|
||||
border-radius: 5px;
|
||||
color: #52514e;
|
||||
border: 1px solid #b2a46e;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.media-player {
|
||||
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif !important;
|
||||
}
|
||||
|
||||
.media-player-container {
|
||||
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
|
||||
}
|
||||
|
||||
.media-player-link {
|
||||
cursor: pointer !important;
|
||||
}
|
||||
|
||||
.gb-bullet-player {
|
||||
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif !important;
|
||||
background: white;
|
||||
height: 95%;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
.gb-bullet-player-item {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.gb-image-player-outter-div {}
|
||||
|
||||
.gb-image-player-img {}
|
||||
|
||||
.gb-bullet-player-outter-div {}
|
||||
|
||||
.gb-video-player-wrapper {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.gb-video-react-player {
|
||||
|
||||
position: relative;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
|
||||
body {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.App {
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
.App .body {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.body {
|
||||
flex-basis: 12em;
|
||||
/* Default value of the element before distribuing the remaing space */
|
||||
flex-grow: 0;
|
||||
/* Defined the ability to groe */
|
||||
flex-shrink: 0;
|
||||
/* Defines the ability to shrink */
|
||||
max-width: 12em;
|
||||
order: -1;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.media-player-container {
|
||||
overflow: auto;
|
||||
max-height: 90%;
|
||||
font-family: "Open Sans", sans-serif;
|
||||
background: white;
|
||||
}
|
||||
|
||||
.media-player-scroll {
|
||||
height: 1500px;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1000px) {
|
||||
.media-player-scroll h1 {
|
||||
font-size: 15px;
|
||||
}
|
||||
.media-player-scroll p {
|
||||
font-size: 12px;
|
||||
}
|
||||
.media-player-scroll li {
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 451px) {
|
||||
.media-player {
|
||||
position: relative;
|
||||
zoom: 90%;
|
||||
height: 94% !important;
|
||||
width: 95% !important;
|
||||
background-repeat: no-repeat;
|
||||
margin-top: 10px;
|
||||
margin-left: 10px;
|
||||
margin-right: -40px;
|
||||
}
|
||||
.gb-markdown-player-quality {
|
||||
bottom: -1px;
|
||||
left: -3px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 451px) {
|
||||
.media-player {
|
||||
position: relative;
|
||||
zoom: 90%;
|
||||
height: 100% !important;
|
||||
width: 95% !important;
|
||||
background-repeat: no-repeat;
|
||||
margin-top: 10px;
|
||||
margin-left: 20px;
|
||||
margin-right: -40px;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
.webchat > div {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.webchat {
|
||||
background-color: white !important;
|
||||
left: 57%;
|
||||
right: 0%;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
overflow: auto !important;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1000px) {
|
||||
.webchat {
|
||||
display: inline-block !important;
|
||||
width: 96% !important;
|
||||
height: 57% !important;
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
font-size: 14px;
|
||||
left: 50%;
|
||||
top: 41%;
|
||||
|
||||
position: absolute;
|
||||
margin-left: -48%;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 1000px) {
|
||||
.webchat {
|
||||
display: inline-block !important;
|
||||
width: 50% !important;
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
font-size: 14px;
|
||||
top: 1% !important;
|
||||
|
||||
height: 96%;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
margin-left: -8%;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
border-bottom: 4px solid #4f4f4f;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
.body .container { padding: 1em;width: 100%;height: 100% }
|
||||
|
||||
.body .ms-Breadcrumb {
|
||||
margin-bottom: 1em;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.body .selection {
|
||||
height: calc(100vh - 16.5em);
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.body .selection .selection-item {
|
||||
display: flex;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.body .selection .selection-item .name { margin-left: 1em; }
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
.footer {
|
||||
align-items: center;
|
||||
background-color: #450a64;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.footer-container { color: white; }
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
@media screen and (max-width: 1000px) {
|
||||
.player {
|
||||
width: 93% !important;
|
||||
height: 26% !important;
|
||||
border: 7px solid #272727;
|
||||
position: absolute;
|
||||
top: 9%;
|
||||
left: 50%;
|
||||
margin-left: -48%;
|
||||
background: url(../images/general-bot-background.jpg), WHITE;
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
background-position: center;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 1000px) {
|
||||
.player {
|
||||
display: inline-block;
|
||||
width: 46% !important;
|
||||
height: 81% !important;
|
||||
border: 7px solid #272727;
|
||||
background: url(../images/general-bot-background.jpg), WHITE;
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
background-position: center;
|
||||
position: absolute;
|
||||
left: 1%;
|
||||
top: 15%;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
.media {
|
||||
margin-top: 20px;
|
||||
height: 280px !important;
|
||||
width: 200px !important;
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
.NavBar {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 0.2em 0.5em;
|
||||
border-bottom-width: 1px;
|
||||
color:black;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
/*
|
||||
.logo {
|
||||
padding-top: 4em;
|
||||
}
|
||||
*/
|
||||
|
||||
.NavBar .searchbox { width: 20em; }
|
||||
|
||||
.NavBar .searchbox .ms-SearchBox {
|
||||
background-color: white;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
|
@ -1,199 +0,0 @@
|
|||
.ms-Nav {
|
||||
background: #222;
|
||||
color: white;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.ms-Nav-link {
|
||||
color: white !important;
|
||||
background-color: #222222 !important;
|
||||
}
|
||||
|
||||
.ms-Nav-link a:active {
|
||||
border-right: 2px solid white;
|
||||
}
|
||||
|
||||
.ms-Nav-compositeLink .ms-Nav-chevronButton.ms-Nav-chevronButton--link {
|
||||
background: #222222 !important;
|
||||
}
|
||||
|
||||
.ms-Nav-compositeLink.is-selected .ms-Nav-chevronButton,
|
||||
.ms-Nav-compositeLink.is-selected a {
|
||||
padding-left: 70px !important;
|
||||
}
|
||||
|
||||
html[dir="ltr"] .ms-Nav-compositeLink.is-selected .ms-Nav-chevronButton:after,
|
||||
html[dir="ltr"] .ms-Nav-compositeLink.is-selected a:after {
|
||||
border-left: none !important;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 419px) {
|
||||
.sidebar {
|
||||
display: inline-block !important;
|
||||
background-color: #3f3f3f !important;
|
||||
height: 8%;
|
||||
width: 100% !important;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.tittleSideBarMenu {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.iconMenu {
|
||||
color: #d1d1d1;
|
||||
font-size: 13px;
|
||||
display: inline;
|
||||
margin-right: 20px;
|
||||
}
|
||||
.iconMenu:hover {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.IconsMenu {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
margin-top: -23px;
|
||||
height: 22px;
|
||||
width: 300px;
|
||||
left: 50%;
|
||||
margin-left: -150px;
|
||||
text-align: center;
|
||||
font-family: "Open Sans", sans-serif;
|
||||
}
|
||||
|
||||
.iconText {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 520px) and (max-width:1000px) {
|
||||
.tittleSideBarMenu {
|
||||
display: none;
|
||||
}
|
||||
.sidebar {
|
||||
display: inline-block !important;
|
||||
background-color: #3f3f3f !important;
|
||||
height: 8%;
|
||||
width: 100% !important;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background-image: url(../images/bot-logo.png);
|
||||
background-position: 2px 2px;
|
||||
background-repeat: no-repeat;
|
||||
background-size: contain;
|
||||
}
|
||||
.IconsMenu {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
margin-top: -11px;
|
||||
height: 22px;
|
||||
width: 416px;
|
||||
left: 100px !important;
|
||||
margin-left: 0px !important;
|
||||
text-align: center;
|
||||
font-family: "Open Sans", sans-serif;
|
||||
}
|
||||
.iconMenu {
|
||||
color: #d1d1d1;
|
||||
}
|
||||
.iconMenu:hover {
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 420px) and (max-width: 1000px) {
|
||||
.sidebar {
|
||||
display: inline-block !important;
|
||||
background-color: #3f3f3f !important;
|
||||
height: 8%;
|
||||
width: 100% !important;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
.tittleSideBarMenu {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.iconMenu {
|
||||
color: #d1d1d1;
|
||||
font-size: 14px;
|
||||
display: inline;
|
||||
margin-right: 20px;
|
||||
}
|
||||
.iconMenu:hover {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.IconsMenu {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
margin-top: -11px;
|
||||
height: 22px;
|
||||
width: 416px;
|
||||
left: 50%;
|
||||
margin-left: -208px;
|
||||
text-align: center;
|
||||
font-family: "Open Sans", sans-serif;
|
||||
}
|
||||
|
||||
.iconText {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@media screen and (min-width: 1000px) {
|
||||
.sidebar {
|
||||
display: inline-block !important;
|
||||
background-color: #3f3f3f !important;
|
||||
height: 15%;
|
||||
position: absolute;
|
||||
top: 1%;
|
||||
left: 1%;
|
||||
width: 46% !important;
|
||||
border-right: 14px solid #3f3f3f !important;
|
||||
}
|
||||
|
||||
.tittleSideBarMenu {
|
||||
color: white;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.iconMenu {
|
||||
color: #d1d1d1;
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
margin-right: 20px;
|
||||
margin-left: 20px;
|
||||
}
|
||||
.iconMenu:hover {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.IconsMenu {
|
||||
width: 520px;
|
||||
display: inline-flex;
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
margin-left: -249px;
|
||||
bottom: 10px;
|
||||
height: 22px;
|
||||
font-family: "Open Sans", sans-serif;
|
||||
}
|
||||
|
||||
.iconText {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
.iconText:hover {
|
||||
cursor: pointer;
|
||||
|
||||
}
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
body {
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
font-size: 14px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** Main Layout rules */
|
||||
|
||||
.App { min-height: 100vh; }
|
||||
|
||||
.App {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.App .body {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
.body .sidebar { order: -1; }
|
||||
|
||||
.body .content { flex: 1; }
|
||||
|
||||
.body .sidebar {
|
||||
flex: 0 0 12em;
|
||||
max-width: 12em;
|
||||
}
|
||||
|
||||
.App .header { height: 4em; }
|
||||
|
||||
.App .footer { height: 4em; }
|
||||
|
||||
/** Text */
|
||||
|
||||
.text-red { color: red; }
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
{
|
||||
"accent": "Red",
|
||||
"avatarSize": 40,
|
||||
|
||||
"backgroundColor": "White",
|
||||
|
||||
"bubbleBackground": "White",
|
||||
"bubbleBorder": "solid 1px #E6E6E6",
|
||||
"bubbleBorderRadius": 2,
|
||||
"bubbleFromUserBackground": "White",
|
||||
"bubbleFromUserBorder": "solid 1px #E6E6E6",
|
||||
"bubbleFromUserBorderRadius": 2,
|
||||
"bubbleFromUserTextColor": "Black",
|
||||
"bubbleImageHeight": 240,
|
||||
"bubbleMaxWidth": 480,
|
||||
"bubbleMinHeight": 40,
|
||||
"bubbleMinWidth": 250,
|
||||
"bubbleTextColor": "Black",
|
||||
|
||||
"hideSendBox": false,
|
||||
|
||||
"microphoneButtonColorOnDictate": "#F33",
|
||||
|
||||
"paddingRegular": 10,
|
||||
"paddingWide": 20,
|
||||
|
||||
"sendBoxButtonColor": "#999",
|
||||
"sendBoxButtonColorOnDisabled": "#CCC",
|
||||
"sendBoxButtonColorOnFocus": "#333",
|
||||
"sendBoxButtonColorOnHover": "#333",
|
||||
|
||||
"sendBoxHeight": 40,
|
||||
|
||||
"showSpokenText": false,
|
||||
|
||||
"suggestedActionBackground": "White",
|
||||
"suggestedActionBorder": "solid 2px",
|
||||
"suggestedActionBorderRadius": 0,
|
||||
"suggestedActionDisabledBackground": "White",
|
||||
"suggestedActionDisabledBorder": "solid 2px #E6E6E6",
|
||||
"suggestedActionHeight": 40,
|
||||
"transcriptOverlayButtonBackground": "rgba(0, 0, 0, .6)",
|
||||
"transcriptOverlayButtonBackgroundOnFocus": "rgba(0, 0, 0, .8)",
|
||||
"transcriptOverlayButtonBackgroundOnHover": "rgba(0, 0, 0, .8)",
|
||||
"transcriptOverlayButtonColor": "White",
|
||||
"transcriptOverlayButtonColorOnFocus": "White",
|
||||
"transcriptOverlayButtonColorOnHover": "White",
|
||||
|
||||
"videoHeight": 270
|
||||
}
|
||||
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 70 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 48 KiB |
|
Before Width: | Height: | Size: 958 B |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 247 KiB |
|
Before Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 79 KiB |
|
Before Width: | Height: | Size: 1.7 KiB |
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"version": "1.0.0",
|
||||
"description": "Default General Bots theme.",
|
||||
"authors": "pragmatismo.cloud",
|
||||
"license": "AGPL-3.0"
|
||||
|
||||
}
|
||||
47
templates/edu.gbai/edu.gbdialog/start.bas
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
REM SEND FILE “colegioinovar.PNG”
|
||||
SAVE “Log.xlsx”, from, mobile, today, now, "start"
|
||||
|
||||
TALK "Olá " + username + “, eu sou o *InovarBot*, uma inteligência artificial criada para facilitar o seu contato conosco (instituição de ensino) e auxiliar em seu crescimento/progresso/evolução educacional."
|
||||
|
||||
row = FIND “People.xlsx”, “mobile=” + from
|
||||
IF row = null THEN
|
||||
|
||||
TALK Verifiquei que é seu primeiro contato conosco por aqui. Vamos fazer o seu cadastro e realizar a matrícula logo em seguida.
|
||||
TALK Por favor, me informe o seu *Nome Completo*:
|
||||
HEAR nome AS NAME
|
||||
TALK Qual a sua *data de nascimento*? Exemplo: 23/09/2001.
|
||||
HEAR datanasc AS DATE
|
||||
TALK Informe por favor, um *e-mail* pra contato.
|
||||
HEAR email as EMAIL
|
||||
TALK Por favor, me informe o seu *CPF* (apenas números).
|
||||
HEAR cpf AS INTEGER
|
||||
TALK Qual o *número do seu RG ou CNH* (apenas números, por favor)?
|
||||
HEAR rg AS INTEGER
|
||||
TALK Qual o *Órgão emissor* do seu RG ou CNH?
|
||||
HEAR orgaorg
|
||||
TALK Qual a *data de emissão* do seu *RG* ou *CNH*? Exemplo: 15/08/2007
|
||||
HEAR dataemite AS DATE
|
||||
TALK Qual o seu endereço completo?
|
||||
HEAR ender
|
||||
TALK Pronto! Agora vamos realizar a matrícula do aluno.\n\nPor favor, me informe o *Nome Completo*:
|
||||
HEAR nomealuno AS NAME
|
||||
TALK Me informe o *CPF* (apenas números) do aluno:
|
||||
HEAR cpfaluno as INTEGER
|
||||
TALK Qual a *data de nascimento* do aluno? Exemplo: 07/03/2010
|
||||
HEAR datanascaluno AS DATE
|
||||
TALK Qual o *RG* (apenas números) do aluno?
|
||||
HEAR rgaluno AS DATE
|
||||
TALK Qual o *Órgão Emissor* do documento?
|
||||
HEAR orgaoaluno
|
||||
TALK Qual o *Data de Emissão* do documento?
|
||||
HEAR emissaoaluno AS DATE
|
||||
TALK Qual o nome do responsável financeiro do aluno?
|
||||
HEAR respfinaluno AS NAME
|
||||
TALK Vou registrar agora estes dados, um instante por favor...
|
||||
SAVE People.xlsx, id, from, nome, datanasc, email, cpf, rg, orgaorg, dataemite, ender, nomealuno, cpfaluno, datanascaluno
|
||||
TALK "Pronto, + username + ! O cadastro foi realizado. Iremos entrar em contato. \n\nObrigado!"
|
||||
|
||||
ELSE
|
||||
SAVE Log.xlsx, from, mobile, today, now, hello
|
||||
TALK Olá, + username + ! Bem-vinda(o) de volta. Você pode tirar dúvidas comigo sobre a secretaria.
|
||||
END IF
|
||||
7
templates/instagram.gbai/instagram.gbdialog/poster.bas
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
REM SET SCHEDULE "* 8 * * * *"
|
||||
user = “user@domain.com”
|
||||
pass= "*************"
|
||||
o =get "https://oooooooooo"
|
||||
caption = REWRITE "Crie um post sobre hotmart e seus produtos, no estilo dica do dia incluíndo 10 hashtags, estilo instagram o texto! Importante, retorne só a saída de texto pronta"
|
||||
image = GET IMAGE caption
|
||||
POST username, password, image, caption
|
||||
6
templates/law.gbai/law.gbdialog/processo.bas
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
TALK "Qual o número do processo? "
|
||||
HEAR processo
|
||||
text = GET "processo.pdf"
|
||||
text = "Com base neste documento, responda as dúvidas da pessoa: \n\n" + text
|
||||
SET CONTEXT text
|
||||
TALK "Processo ${processo} carregado. Pode me perguntar qualquer coisa do processo ou me peça um resumo da forma que você precisar. "
|
||||
21
templates/law.gbai/law.gbdialog/start.bas
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
TALK “Olá! “ + username + “! Bem vinda(o)!”
|
||||
BEGIN TALK
|
||||
Ddiálogo/funcionalidade de consulta de processos, o conector WhastApp Vs Microsoft Teams (General Bots - Conector Microsoft Teams X WhatsApp.pdf) teve destaque por caber em diversas realidades vislumbradas nesse segmento.
|
||||
|
||||
A funcionalidade Reading Comprehension / GPT permite submeter perguntas a um texto, como o Diário Oficial, em busca de conteúdos relacionados.
|
||||
|
||||
O repositório respeita a governança e permite que conteúdos sejam compartilhados com clientes e equipe, conforme credenciais.
|
||||
|
||||
O site do escritório pode ter um chat atendendo ao público, onde o mesmo Bot é a entidade invocada.
|
||||
|
||||
O cliente pode conversar via WhatsApp com o escritório, estando o agente atendendo via chat do Microsoft Teams e o General Bots atuando como N1, respondendo prontamente a questões de base de conhecimento.
|
||||
|
||||
Proativamente o Assistente Virtual pode disparar alertas/notificações para colaboradores e/ou clientes, baseados em agenda ou em KPIs monitorados pela inteligência.
|
||||
|
||||
|
||||
END TALK
|
||||
BEGIN SYSTEM PROMPT
|
||||
|
||||
If someone asks about my technology, I'm an AI virtual assistant powered by the General Bots LLM.
|
||||
Always answer at the end, saying that your are available, say it each time differently with each response.
|
||||
END SYSTEM PROMPT
|
||||