1.14.12 • Published 1 month ago

prodap-chatbot-domain v1.14.12

Weekly downloads
82
License
MIT
Repository
gitlab
Last release
1 month ago

Prodap Chatbot Domain

Classes de domínio responsáveis por montar uma gramática rica e padronizada para o Chatbot da Prodap. Veja abaixo como criar uma mensagem simples para o Chatbot:

const result = new Dialog('start-day')
result.add(
    new SystemText(
        'Sou Loris, sua Assistente Pessoal, e vou acompanhar a rotina da fazenda junto com você!'
    )
)

res.json(result)

O próximo exemplo cria uma mensagem complexa:

const result = new Dialog('start-day')
result
    .add(
        new PlainText(
            'Sou Loris, sua Assistente Pessoal, e vou acompanhar a rotina da fazenda junto com você!'
        )
    )
    .add(new PlainText('Olá eu sou a Loris! Vou te ajudar com algumas dicas.'))
    .add(new PlainText('blá blá blá'))
    .add(
        new Menu(
            'Gostaria de visualizar alguns indicadores?',
            new HttpAction({ label: '👍 Sim', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: '👎 Não', url: 'http://teste.com/next?value=no' }),
            new HttpAction({ label: '👎 Cancelar', url: 'http://teste.com/next?value=cancel' }),
            new DialogAction({ label: 'Encerrar', dialog: new Dialog().add(new PlainText('Ok então. Até mais')) })
        )
    )

res.json(result)

Este exemplo mostra como criar uma mensagem com um gráfico de Pizza:

const result = new Dialog('chart-intent')

result.add(
    new PieChart('Acompanhamento e Vistorias', 'Maio/2020', 'Vistoria dos Lotes', 'TOTAL: 46 Lotes')
        .addData(
            {
                label: 'Lotes vistoriados nos ultimos 3 dias: 72% - 33 lotes',
                value: 33,
                color: 'green',
            },
            {
                label: 'Lotes vistoriados nos ultimos 7 dias: 12% - 6 lotes',
                value: 6,
                color: 'orange',
            },
            {
                label: 'Lotes vistoriados há mais de uma semana: 16% - 7 lotes',
                value: 33,
                color: 'red',
            }
        )
        .addAction(new HttpAction({ label: 'Detalhar informações', 'https://action.detail.pie'))
)

res.json(result)

Este exemplo mostra como criar um Card, que e composto de listas de objetos:

       const result = new Dialog('CardListActions')

    let cardProps: CardListProps = {
        cardListProps: {
            title: 'Parcialmente vistoriados nos últimos 3 dias',
            subtitle: 'MÓDULOS E PASTOS AFETADOS',
            tooltip: 'Clique no módulo / pasto para ver os retiros associados',
        } as CardProps,
    }

    result.add(
        new CardList(cardProps).addList(
            new HttpAction({ label: 'MOD. QUIXUIO RIO GRANDE DO SUL', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'MOD. FRENTE CASA DA SEDE', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'MOD. QUICUIO DA MATA', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'MOD. QUICUIO GRANDE GAMELEIRA', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'MOD. MATA AMARELA', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'Pasto Canto', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'Pasto Fundo do curral', url: 'http://teste.com/next?value=no' }),
            new HttpAction({ label: 'Pasto Alegria', url: 'http://teste.com/next?value=no' }),
            new HttpAction({ label: 'Pasto Esperança', url: 'http://teste.com/next?value=no' }),
            new HttpAction({ label: 'Pasto Lança Curta', url: 'http://teste.com/next?value=no' }),
            new HttpAction({ label: 'Pasto Lima Limão', url: 'http://teste.com/next?value=no' })
        )
    )

    cardProps = {
        cardListProps: {
            title: 'Lotes vistoriados há mais de uma semana',
            subtitle: 'MÓDULOS E PASTOS AFETADOS',
            tooltip: 'Clique no módulo / pasto para ver os retiros associados',
        } as CardProps,
    }

    result.add(
        new CardList(cardProps).addList(
            new HttpAction({ label: 'MOD. QUIXUIO RIO GRANDE DO SUL', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'MOD. FRENTE CASA DA SEDE', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'MOD. QUICUIO DA MATA', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'MOD. QUICUIO GRANDE GAMELEIRA', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'MOD. MATA AMARELA', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'Pasto Canto', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'Pasto Fundo do curral', url: 'http://teste.com/next?value=no' })
        )
    )

Este exemplo mostra como criar um Gráfico de Barras:

let result = new Dialog('BarChart')

result.add(
    new BarChart(
        'Tábuas do barril x Vistorias',
        'Maio/2020',
        '% de itens acompanhados nos últimos 7 dias',
        'TOTAL: 29 Lotes',
        DataTypes.NUMBER
    )
        .addData(
            {
                label: 'Aguada',
                value: 33,
            },
            {
                label: 'Rebanho',
                value: 6,
            },
            {
                label: 'Altura Pasto',
                value: 33,
            }
        )
        .addRule(
            {
                valMin: 0,
                valMax: 39,
                label: 'Inferior à 40%',
                color: 'red',
            },
            {
                valMin: 40,
                valMax: 54,
                label: '40% à 55%',
                color: 'orange',
            },
            {
                valMin: 55,
                valMax: 100,
                label: 'Inferior à 40%',
                color: 'green',
            }
        )
        .addAction(new HttpAction({ label: 'Detalhar informações', 'https://action.detail.bar' }))
)

Este exemplo mostra como criar CardListOfList:

const result = new Dialog('CardListOfList')

result.add(
    new CardListOfList({
        title: 'Módulos/ pastos NÃO VISTORIADOS nos últimos 7 dias',
        subtitle: 'MÓDULOS E PASTOS AFETADOS',
        tooltip: 'Clique no módulo / pasto para ver os retiros associados',
    }).addCardList(
        new CardList({
            title: 'RETIRO A',
        }).addList(
            new HttpAction({ label: 'MOD. QUIXUIO RIO GRANDE DO SUL', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'MOD. FRENTE CASA DA SEDE', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'MOD. QUICUIO DA MATA', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'MOD. QUICUIO GRANDE GAMELEIRA', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'MOD. MATA AMARELA', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'Pasto Canto', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'Pasto Fundo do curral', url: 'http://teste.com/next?value=no' }),
            new HttpAction({ label: 'Pasto Alegria', url: 'http://teste.com/next?value=no' }),
            new HttpAction({ label: 'Pasto Esperança', url: 'http://teste.com/next?value=no' }),
            new HttpAction({ label: 'Pasto Lança Curta', url: 'http://teste.com/next?value=no' }),
            new HttpAction({ label: 'Pasto Lima Limão', url: 'http://teste.com/next?value=no' })
        ),
        new CardList({
            title: 'RETIRO B',
        }).addList(
            new HttpAction({ label: 'MOD. QUIXUIO RIO GRANDE DO SUL', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'MOD. FRENTE CASA DA SEDE', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'MOD. QUICUIO DA MATA', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'MOD. QUICUIO GRANDE GAMELEIRA', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'MOD. MATA AMARELA', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'Pasto Canto', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'Pasto Fundo do curral', url: 'http://teste.com/next?value=no' }),
            new HttpAction({ label: 'Pasto Alegria', url: 'http://teste.com/next?value=no' }),
            new HttpAction({ label: 'Pasto Esperança', url: 'http://teste.com/next?value=no' }),
            new HttpAction({ label: 'Pasto Lança Curta', url: 'http://teste.com/next?value=no' }),
            new HttpAction({ label: 'Pasto Lima Limão', url: 'http://teste.com/next?value=no' })
        ),
        new CardList({
            title: 'RETIRO C',
        }).addList(
            new HttpAction({ label: 'MOD. QUIXUIO RIO GRANDE DO SUL', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'MOD. FRENTE CASA DA SEDE', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'MOD. QUICUIO DA MATA', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'MOD. QUICUIO GRANDE GAMELEIRA', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'MOD. MATA AMARELA', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'Pasto Canto', url: 'http://teste.com/next?value=yes' }),
            new HttpAction({ label: 'Pasto Fundo do curral', url: 'http://teste.com/next?value=no' }),
            new HttpAction({ label: 'Pasto Alegria', url: 'http://teste.com/next?value=no' }),
            new HttpAction({ label: 'Pasto Esperança', url: 'http://teste.com/next?value=no' }),
            new HttpAction({ label: 'Pasto Lança Curta', url: 'http://teste.com/next?value=no' }),
            new HttpAction({ label: 'Pasto Lima Limão', url: 'http://teste.com/next?value=no' })
        )
    )
)

Instalação

Esta é uma biblioteca do Node.js disponível por meio do registro npm . Antes de instalar, baixe e instale Node.js. É necessário Node.js 12.18.2 ou superior.

Se este for um projeto totalmente novo, certifique-se de criar um package.json primeiro com o comando npm init.

A instalação é feita usando o comando npm install:

$ npm install prodap-chatbot-domain

Vantagens:

  • Padronização das respostas
  • Uso do padrão de design Fluent Interface para a construção do retorno
  • Uma gramática rica, que permite montar diálogos complexos para que sistemas de Chat interpretem.
1.14.12

1 month ago

1.14.11

1 month ago

1.14.10

1 month ago

1.14.9

1 month ago

1.14.8

2 months ago

1.14.7

2 months ago

1.14.6

2 months ago

1.14.5

2 months ago

1.14.4

2 months ago

1.14.3

4 months ago

1.14.2

4 months ago

1.14.1

5 months ago

1.14.0

5 months ago

1.12.14

6 months ago

1.12.13

6 months ago

1.13.1

6 months ago

1.13.0

6 months ago

1.12.12

8 months ago

1.12.11

8 months ago

1.10.9

10 months ago

1.10.8

10 months ago

1.10.7

12 months ago

1.12.3

9 months ago

1.12.2

9 months ago

1.12.1

9 months ago

1.12.0

9 months ago

1.12.7

9 months ago

1.12.6

9 months ago

1.12.5

9 months ago

1.12.4

9 months ago

1.12.9

8 months ago

1.12.8

9 months ago

1.12.10

8 months ago

1.11.0

9 months ago

1.10.13

9 months ago

1.10.11

10 months ago

1.10.12

9 months ago

1.10.10

10 months ago

1.10.5

1 year ago

1.10.4

1 year ago

1.10.3

1 year ago

1.10.2

1 year ago

1.10.6

1 year ago

1.10.1

1 year ago

1.10.0

1 year ago

1.6.1

1 year ago

1.6.0

1 year ago

1.9.1

1 year ago

1.5.5

1 year ago

1.9.0

1 year ago

1.5.4

1 year ago

1.5.3

1 year ago

1.8.1

1 year ago

1.8.0

1 year ago

1.5.9

1 year ago

1.5.8

1 year ago

1.9.3

1 year ago

1.5.7

1 year ago

1.9.2

1 year ago

1.5.6

1 year ago

1.7.0

1 year ago

1.5.2

1 year ago

1.5.1

1 year ago

1.5.0

1 year ago

1.4.0

1 year ago

1.3.2

2 years ago

1.3.1

2 years ago

1.2.6

2 years ago

1.2.5

2 years ago

1.2.4

2 years ago

1.2.3

2 years ago

1.3.0

2 years ago

1.2.0

2 years ago

1.2.2

2 years ago

1.2.1

2 years ago

1.1.0

2 years ago

1.0.19

2 years ago

1.0.18

2 years ago

1.0.17

2 years ago

1.0.16

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.11

2 years ago

1.0.10

2 years ago

1.0.15

2 years ago

1.0.14

2 years ago

1.0.13

2 years ago

1.0.12

2 years ago

1.0.2

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

0.5.70

2 years ago

0.5.71

2 years ago

0.5.69

2 years ago

0.5.68

2 years ago

0.5.65

3 years ago

0.5.66

3 years ago

0.5.63

3 years ago

0.5.64

3 years ago

0.5.67

2 years ago

0.5.61

3 years ago

0.5.62

3 years ago

0.5.60

3 years ago

0.5.59

3 years ago

0.5.58

3 years ago

0.5.57

3 years ago

0.5.56

3 years ago

0.5.55

3 years ago

0.5.54

3 years ago

0.5.52

3 years ago

0.5.53

3 years ago

0.5.51

3 years ago

0.5.50

3 years ago

0.5.49

3 years ago

0.5.48

3 years ago

0.5.47

3 years ago

0.5.44

3 years ago

0.5.45

3 years ago

0.5.46

3 years ago

0.5.43

3 years ago

0.5.42

3 years ago

0.5.41

3 years ago

0.5.40

3 years ago

0.5.38

3 years ago

0.5.39

3 years ago

0.5.37

3 years ago

0.5.33

3 years ago

0.5.36

3 years ago

0.5.34

3 years ago

0.5.35

3 years ago

0.5.32

3 years ago

0.5.31

3 years ago

0.5.30

4 years ago

0.5.29

4 years ago

0.5.28

4 years ago

0.5.27

4 years ago

0.5.26

4 years ago

0.5.25

4 years ago

0.5.24

4 years ago

0.5.23

4 years ago

0.5.22

4 years ago

0.5.21

4 years ago

0.5.18

4 years ago

0.5.19

4 years ago

0.5.16

4 years ago

0.5.20

4 years ago

0.5.14

4 years ago

0.5.15

4 years ago

0.5.13

4 years ago

0.5.12

4 years ago

0.5.11

4 years ago

0.5.10

4 years ago

0.5.9

4 years ago

0.5.8

4 years ago

0.5.7

4 years ago

0.5.6

4 years ago

0.5.5

4 years ago

0.5.4

4 years ago

0.5.3

4 years ago

0.5.2

4 years ago

0.4.9

4 years ago

0.5.0

4 years ago

0.5.1

4 years ago

0.4.8

4 years ago

0.4.7

4 years ago

0.4.6

4 years ago

0.4.5

4 years ago

0.4.4

4 years ago

0.4.3

4 years ago

0.4.1

4 years ago

0.4.2

4 years ago

0.3.2

4 years ago

0.4.0

4 years ago

0.3.1

4 years ago

0.3.0

4 years ago

0.2.0

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago

0.0.1

4 years ago